使用WCF管理证书

使用WCF管理证书,wcf,x509certificate,certificate,nettcpbinding,Wcf,X509certificate,Certificate,Nettcpbinding,我们有一个中心WCF服务,我们通过netTcpBinding为与客户端的双工通信公开该服务 我们只希望允许internet上的某些计算机与此WCF服务通信。我们要走的路线是使用X509证书来保护传输层并提供客户端身份验证,如下所示: <security mode="Transport"> <transport clientCredentialType="Certificate"></transport> <message client

我们有一个中心WCF服务,我们通过netTcpBinding为与客户端的双工通信公开该服务

我们只希望允许internet上的某些计算机与此WCF服务通信。我们要走的路线是使用X509证书来保护传输层并提供客户端身份验证,如下所示:

  <security mode="Transport">
    <transport clientCredentialType="Certificate"></transport>
    <message clientCredentialType="None"/>
  </security>

目前,我们正在调用“MakeCert”来生成X509证书,并且必须指定
certificateValidationMode=“PeerTrust”
来回避我们生成自己的自签名证书这一事实


我的问题是我们应该如何管理客户端证书?我们不想让每个客户都购买他们自己的证书-可能有数百个,这不是一个选项。我想我们想充当我们自己的“根权限”,但我不知道该怎么做…

如果您不想让每个客户都从可信的证书提供商(如Verisign)购买其证书,那么您的其他两个选项是像您一直做的那样生成自签名证书(应仅用于测试)或者创建自己的PKI(私钥基础设施)

我认为在你的情况下,创建你自己的PKI是一条出路。正如其他人在评论中所说:

  • 首先将计算机设置为证书颁发机构:

    • 安装Active Directory证书服务(服务器角色)
    • 将其配置为根CA
    • 配置该CA的加密、名称和有效性
  • 然后让客户端从该CA请求证书

  • 您可以从CA的角度获取证书

  • 客户端安装证书

  • 调整WCF配置以使用CA和证书


  • 希望这能有所帮助。

    如果您的问题是如何设置和使用自己的CA,那么这个问题属于服务器故障。如果设置自己的CA是这个问题的解决方案(是吗?),那么这可能是我的问题……是的,我认为这是一个解决方案。