0

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

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

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

多谢

4

1 回答 1

0

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

于 2012-10-11T02:59:02.427 回答