繁体   English   中英

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

[英]Custom certificate validation in client and server with WCF

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

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

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

非常感谢

如果您覆盖validate函数,则基本上是您自己的。 这基本上是在规避整个证书安全系统。 您需要在根级别上使证书在服务器上受信任。 如果无法执行此操作,则可以使用以下选项:1.使用通配符证书(如果所有服务器都可以位于同一域中)2.创建自己的证书颁发机构

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM