2

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

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

  1. 我应该创建一个证书 "CN=ABCD" ,然后右键单击它并导出为 pfx 文件并将它们分发给客户吗?
  2. 有人说在代码中验证,有人说在配置中验证哪个更好?
  3. 如果我的公司分发证书,我应该如何知道哪个客户正在调用它,因为证书对所有人都有相同的名称?
  4. .cer 文件和 .pfx 文件有什么区别?
  5. 将证书传递给客户时,我会同时提供 .cer 和 .pfx 文件吗?
  6. 如果过期,我应该如何只撤销一个客户?
  7. 我的公司已经拥有像 *.fdfd.org 这样的证书。我可以将其用作我的 X509Certificate 而不是生成一个吗?

许多问题!
但是由于很多挫折,我想得到开发人员的意见,因为我无法获得正确的信息。

4

1 回答 1

1
  • 必须拥有单独的服务证书,并且您应该为每个客户端拥有一个证书。一旦您共享服务的私钥,您的安全性就消失了。
  • 您可以将客户端证书的公钥安装到 Machine\Trusted people(具有任何受信任证书的客户端都可以访问您的服务),或者您可以使用自定义证书验证器(仅消息安全性 - 根据您之前的问题,您可能使用消息安全性)仅验证这 10 个证书。
  • 仅当您为每个客户端创建单独的证书时,这才有可能。也可以将证书与支持的用户名和密码结合使用,但它需要非常高级的 WCF 配置,并且仍然在多个客户端之间共享单个证书是一个糟糕的决定。
  • 证书只是一些信息的容器——非对称加密的密钥。.cer 仅包含可以自由分发的公钥 - 您可能必须在客户端之间分发您的服务证书的 .cer 文件。.pfx 包含公钥和私钥,必须尽可能保护。一旦 .pfx 文件被破坏,证书就不再受到保护,必须更换。因此,您必须保留服务的 .pfx(安装在证书凭证存储中)并且每个客户端都必须保留他的 .pfx。
  • 如果您为客户创建证书,您将至少将 .pfx 传递给他们。显然,一旦您通过不安全的电子邮件发送此类证书,您就会严重损害安全性。
  • 如果一个客户端过期,您将从受信任的证书中删除其证书。如果您有自己的证书颁发机构(如果您想为客户创建证书,则应该拥有)
  • 如果您的服务位于 fdfd.org 上,您可能可以使用它,但只能用于服务。
于 2011-05-10T19:03:34.537 回答