X509Certificate实施最佳实践

时间:2011-05-09 22:21:33

标签: wcf wcf-security x509certificate2

首先,感谢所有那些试图帮助不知名的人的技术人员。

其次,我有一个wcf服务,应该只由我们公司所知的几个客户(10)使用。此wcf服务具有x509certificate“CN = ABCD”。现在,它希望从客户端依次收到证书以使用此服务。所以这里是设计问题

  1. 我应该创建一个证书吗? “CN = ABCD”,然后右键单击它 并导出为pfx文件和 将它们分发给客户?
  2. 有人说要在代码中验证 有人说要在配置中验证哪个 更好吗?
  3. 我应该如何知道哪个客户端 作为证书调用具有相同的 如果我的公司,所有人的名字 分发它?
  4. .cer之间有什么区别 文件和.pfx文件?
  5. 将证书传递给 客户,我会给两个.cer 和.pfx文件?
  6. 我应该如何只撤销一个 客户如果到期了?
  7. 我的comapny已经有证书     像* .fdfd.org。我可以用它作为     我的X509Certificate而不是     生成一个?
  8. 很多问题!
    但由于很多挫折,我想得到开发人员的意见,因为我无法获得正确的信息。

1 个答案:

答案 0 :(得分:1)

  • 必须拥有服务的单独证书,并且每个客户端都应该有一个证书。一旦您共享服务的私钥,您的安全性就会消失。
  • 您可以将客户端证书的公钥安装到Machine \ Trusted人员(具有任何受信任证书的客户端可以访问您的服务),也可以使用自定义证书验证程序(仅限邮件安全性 - 根据您的previous question你可能使用消息安全性来确实只验证那10个证书。
  • 仅当您为每个客户创建单独的证书时,才可以执行此操作。也可以将证书与支持用户名和密码相结合,但它需要非常高级的WCF配置,并且仍然在多个客户端之间共享单个证书是一个错误的决定。
  • 证书只是某些信息的容器 - 非对称加密的密钥。 .cer只包含可以自由分发的公钥 - 您可能需要在客户端之间分发服务证书的.cer文件。 .pfx包含公钥和私钥,必须尽可能保护。一旦.pfx文件被泄露,证书就不再受到保护,必须更换。因此,您必须保留服务的.pfx(安装在证书凭证存储中),每个客户端必须保留他的.pfx。
  • 如果您为客户创建证书,则至少会将.pfx传递给他们。显然,一旦您通过不安全的电子邮件发送此类证书,您就会严重损害安全性。
  • 如果一个客户端过期,您将从受信任的证书中删除其证书。如果您拥有自己的证书颁发机构(如果要为客户创建证书,则应具有该证书颁发机构)
  • 如果您的服务位于fdfd.org,您可以使用它,但仅限于服务。