wcf 服务服务器和客户端证书与 Ssl 证书不同时的安全异常

Posted

技术标签:

【中文标题】wcf 服务服务器和客户端证书与 Ssl 证书不同时的安全异常【英文标题】:Security exception when wcf service server and client certificate is different than SSl certificate 【发布时间】:2015-08-17 07:21:23 【问题描述】:

我是 WCF 新手,很难理解证书身份验证和加密。

我有一个使用 clientcredentialtype="Certificate" 的 WCF 服务。

我已经使用 makecert 工具生成了 CA 证书、服务器和客户端证书。

服务托管在 IIS 中。

当我为我的网站使用 SSl 时,我遇到了一个安全异常:

Could not establish trust relationship for the SSL/TLS secure channel with authority 'fqdn;. 
System.Net.webException: The underlying connection was closed: 
Could not establish trust relationship for the SSL/TLS secure channel. ---> 
System.Security.Authentication.AuthenticationException: The remore 
certificate is invalid according to the validation procedure. 

SSl 证书和 WCF 证书来自不同的证书颁发机构。

为什么会抛出安全异常?

客户端和服务器之间的通信是如何进行的以及正在使用哪些证书?我真的很困惑。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

MakeCert 工具会创建默认不受信任的自签名证书,因为没有来自证书颁发机构的签名来证明证书上信息的合法性。

当您的客户端连接时,除非禁用证书验证或您推出自己的检查方案,否则使用典型验证过程将失败。也就是说,根 CA 不通过证书信任链信任您的证书。

【讨论】:

以上是关于wcf 服务服务器和客户端证书与 Ssl 证书不同时的安全异常的主要内容,如果未能解决你的问题,请参考以下文章

WCF 客户端证书身份验证,服务“SslRequireCert”的 SSL 设置与 IIS“Ssl,SslNegotiateCert”的设置不匹配

使用ssl和客户端证书的Wcf:请求svc succes wcf调用返回403.16

如何在 WCF 客户端中接受自签名 SSL 证书?

WCF 消息安全证书

简单的 WCF SSL Web 服务

WCF 服务证书和客户端端点身份 - 为啥它不起作用?