使用WCF在客户端和服务器中自定义证书验证

时间:2012-10-10 17:22:58

标签: .net wcf x509certificate

我有一个非常具体的配置,需要使用证书对WCF客户端和服务器进行身份验证。 由于此证书仅由我的客户端和服务器应用程序使用,并且无法为每个实例生成一个专用证书,因此自签名就是这种方式。 所以,我的孔连接运行良好,我可以在指向服务器的通道中附加客户端证书,服务器服务也附加自己的证书。 我想确保只允许客户端可以调用我的服务,因此必须在服务器端进行验证。 我正在使用自定义验证器(X509CertificateValidator)覆盖方法验证(X509Certificate2证书) 到目前为止,一切正常,连接建立时调用该方法,它接收所有属性的客户端证书,这里是问题:

- 我如何确定我收到的证书是原始证书才能验证我的客户?

现在,我正在使用真实(假)证书进行测试,使用HTTPS从网站导出(导出证书在浏览器中显示并在本地安装)。 我当然没有私钥,但是我能够在我的客户端连接中附加此证书,并且它在服务器端得到了很好的接收。 此证书中的所有属性都与原始属性相同,但它不是! 那么,我如何验证我在服务器端接收的证书是原始证书而不仅仅是副本? 有什么方法可以使用证书的私钥设置一些签名吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

如果您覆盖验证功能,那么您基本上可以独立完成。这基本上绕过了整个证书安全系统。 您需要在根级别上使服务器上的证书受信任。 如果您不能这样做,您有以下选择: 1.使用通配符证书(如果您的所有服务器都在同一个域中) 2.创建自己的证书颁发机构