WCF:无法为 SSL/TLS 安全通道建立信任关系,出现权限错误

Posted

技术标签:

【中文标题】WCF:无法为 SSL/TLS 安全通道建立信任关系,出现权限错误【英文标题】:WCF : Could not establish trust relationship for the SSL/TLS secure channel with authority error 【发布时间】:2013-10-29 22:14:14 【问题描述】:

我有一个客户端站点,当单击按钮时,它会调用 wcf Web 服务。客户端站点是 http,而 Web 服务的 url 是 https 并且需要证书。我有一个正在使用的有效签名私钥证书。

在我的本地主机上一切正常;但是,在部署到运行 iis 6 的 windows 2003 服务器后,调用 Web 服务时出现以下错误:

无法为 SSL/TLS 安全通道建立信任关系 具有权限“主机的网址”

我使用在本地工作的相同 web.config 将证书添加到商店。我已验证 Web 服务调用找到并设置了有效的 X509Certificate。

不确定我错过了什么,我不想每次都重写 servicepiint 管理器以返回 true。

我可能会研究什么想法或事情?

【问题讨论】:

WCF: Could not establish trust relationship for the SSL/TLS secure channel with authority 的可能重复项 如果这有助于您解决问题,请投票 【参考方案1】:

找到问题了。

我的服务器不信任 Web 服务主机使用的根证书。 (不知道为什么它在我的本地机器上而不是我的服务器上)。我通过在服务器的网络浏览器中打开主机的 url 来查看他们的 wsdl 并收到安全警告,发现了这一点。

补救措施:去颁发者的网站下载他们的根证书并添加到我信任的根证书颁发机构。

Bam,它现在可以工作了。

【讨论】:

如果你一直在使用 Fiddler 调试服务调用并使用它的证书拦截模式,你可能会得到这个。只需删除提琴手选项中的拦截,您应该会很好【参考方案2】:

如果它是私有证书,则必须将其添加到客户端和服务器,因为没有客户端可以验证其根密钥。

【讨论】:

https Web 服务调用独立于客户端应用程序。我可能应该更清楚一点,用户单击一个调用本地 Web 服务的按钮,然后在后面的代码中调用 https 外部 Web 服务。

以上是关于WCF:无法为 SSL/TLS 安全通道建立信任关系,出现权限错误的主要内容,如果未能解决你的问题,请参考以下文章

WCF:无法为 SSL/TLS 安全通道建立信任关系,出现权限错误

WCF 无法为具有 iis 权限的 SSL/TLS 安全通道建立信任关系

SSL WCF“无法为具有权限‘localhost’的 SSL/TLS 安全通道建立信任关系

asp.net core 2.0 中的 WCF - 无法为具有权限的 SSL/TLS 安全通道建立信任关系

无法使用主题备用名称证书为 SSL/TLS 安全通道建立信任关系

错误:底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系