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

Posted

技术标签:

【中文标题】错误:底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系【英文标题】:Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel 【发布时间】:2015-09-16 12:35:20 【问题描述】:

我有使用 Web 服务的工具。我为 Web 服务生成了一个自签名证书,使用证书管理器将其导出到本地路径。

我正在按照以下 msdn 代码通过 webservice 将证书添加到其中。 https://support.microsoft.com/en-us/kb/901183

string certPath = @"C:\TestData\certificate.cer";
test.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));

上面是我的代码。

我收到以下错误。

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

堆栈跟踪:

at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at web_Client.testClient.testClassWebService.Add(Request request) in  C:\Workspace\Reference.cs:line 248
at web_Client.WebClient.Add() in C:\Workspace\WebClient.cs:line 227

我不知道发生了什么。我对网络和证书很陌生。请帮忙。

【问题讨论】:

【参考方案1】:

在过去的几天里,我在一个之前运行良好的应用程序中遇到了这个问题。我认为拥有服务器的人更新了一些东西,现在他们需要不同的协议。我只是通过迁移到更高的框架版本解决了其中一个问题。对于第二个,我不得不移动到更高版本(4.5)并将 ServicePointManager.SecurityProtocol 设置为不同的协议。您可以使用智能感知来查看您的选项。

【讨论】:

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

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

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

无法从Dropbox下载文件,因为无法通过C#中的WebClient与SSL / TLS通道连接

解决“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系“的问题

C# 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

无法为 SOAP 调用建立 SSL/TLS 安全通道