我对 SSL 概念完全陌生。我一直在从零发展到我已经计算出碎片但没有时间研究我的项目以将碎片组合在一起的地步。
我们有自定义应用程序,它在两个地方调用另一个 Web 服务(将切换到 2 w ssl)。A) 来自基于 .net 的自定义托管 Web 服务 B) 另一个来自独立 dll
以上内容以前没有任何意义,但据我了解。
我们作为客户端,需要向服务器发送证书,服务器将开始请求证书,并将根据证书中的一些标识信息进行验证,这涉及:
- 获取目标服务器将信任的由第三方签名的签名证书。
到目前为止没有任何问题。我对以下所有情况都使用 64 位编码的 .cer 文件?我还阅读了有关 der 格式等的信息?有关系吗?
从文件访问与从商店访问
我试图以文件(
X509Certificate Cert = X509Certificate.CreateFromCertFile(@"C:\Test.cer");
)和商店(如下(2))的形式访问证书,但我不知道哪个更好。服务器将是一个安全的服务器(因此随机 theif 窃取证书没有问题),但在部署代码时,从文件中看起来似乎很简单(更可能存储概念令人困惑)。
如果我们有一个安全的服务器但有不同类型的应用程序,哪种方法更可取?
从我们拥有的另一个 Web 服务调用 Web 服务时,此方法是否有效(参见 A)?刚刚阅读可能存在非独立/非控制台应用程序无法以这种方式工作的问题?即使它有效,也可以使用商店文件中的证书吗?它是否会在将来引起任何问题,或者在某些方面使用商店会更有效?
- 安装证书。
我应该在哪里安装此证书?
我刚刚在第三方根证书颁发机构商店安装了它。我能够通过独立的 dll 提取此证书。但是我用来从商店中提取的代码是
X509Certificate2Collection CertCollection = store2.Certificates.Find(X509FindType.FindByThumbprint, "blahblahIamThumprintofC:\Test.cer", false);
它在短时间内没有太多帮助,所以我无法衡量使用商店的效果,然后在部署时可能会错过另一台服务器中商店的存在?这是最好的商店吗?它是跨所有 Windows 服务器的常用存储吗?这家商店对于 (A) 自定义 Web 服务案例是否足够好?我读到证书需要存储在机器中而不是作为用户?并且需要提供对 Web 服务帐户的访问权限以进行存储等?[使用 certmgr.msc 查看证书]
- IIS 角色 - Web 服务的托管服务器
由于 Web 服务(托管在 IIS 6 上)也将调用其他 Web 服务,
我需要配置 IIS 来执行此操作吗?或者这也应该通过代码来处理?我也有 PKCS # 7 格式证书?在我们拥有的 .net webservice 的情况下是否会出现这种情况 (A)
我可以尝试很多方法,但我有点不知所措,除了 google 和 SE (存储与文件、用户存储与机器存储、独立 dll 与 .net 网络服务、64 位与 der 与 pkc #7、代码)之外的大量信息和几乎没有帮助更改与 IIS)
如果您问我,您是否尝试过 .net 网络服务中的代码?不 - 那是下一个,但同时试图获得更多的清晰度。