WebException 无法建立 SSL/TLS 安全通道的信任关系

2024-01-19

我的公司开发了一个 .NET Web 服务和一个使用该 Web 服务的客户端 DLL。网络服务通过 ssl 托管在我们的服务器上,证书由 GoDaddy 提供和签名。我们的托管环境中有一些客户端在尝试访问我们的 Web 服务时从客户端 dll 收到以下错误消息。

System.Net.WebException 底层连接已关闭:无法建立 SSL/TLS 安全通道的信任关系。

我们的解决办法是让他们在服务器上打开 IE(这对于许多托管服务来说本身就是一个挑战),然后转到 WSDL URL。然后 IE 会通过安全警报对话框提示他们。它表示证书日期有效,并且名称与页面名称匹配,但由您未选择信任的公司颁发。当他们单击“是”继续时,客户端 dll 就可以成功连接到 Web 服务并正常运行。

有谁知道为什么 GoDaddy 不会出现在有效的发布商列表中?我们运行的所有服务器都有 GoDaddy 作为有效授权。我猜测,出于安全原因,他们已经卸载了 GoDaddy 的权限,但并不完全相信不存在其他潜在问题。

不幸的是,我没有太多运气尝试在本地重新创建它。如果我进入 Internet 选项并删除 GoDaddy 权限并访问我们的服务,ssl 就可以正常工作。我返回到发布商列表,GoDaddy 立即重新加入。所以我的第二个问题是,你们到底如何摆脱 GoDaddy,以便我收到无效证书警告?

好的,最后一个问题。有没有一种方法可以在代码中告诉网络服务忽略无效的证书。我见过一些关于使用 WCF 以编程方式执行此操作的帖子,但没有看到旧的 Web 服务。


我通过在调用 Web 方法之前添加此行来修复此错误:

System.Net.ServicePointManager.ServerCertificateValidationCallback = (senderX, certificate, chain, sslPolicyErrors) => { return true; };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebException 无法建立 SSL/TLS 安全通道的信任关系 的相关文章

随机推荐