错误SecureChannelFailure,无法创建SSL / TLS

时间:2016-07-12 17:31:31

标签: c#

我使用证书和安全协议调用Web服务。该应用程序运行正常,但突然开始给我网络例外。

  

请求已中止:无法创建SSL / TLS安全通道。

当我检查状态代码时,它是SecureChannelFailure,HResult2146233079。 Web服务响应正在返回NULL

部分代码如下:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

我感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

可能会指出正确方向的一些问题

  • 您使用的证书可能已过期了吗?
  • 也许您从不同的计算机上运行客户端,而不是安装了受信任的证书根目录?
  • 也许证书被某种方式撤销了?

希望它有所帮助!

答案 1 :(得分:0)

当我添加像这样的证书

时,它对我有用
X509Store certificatesStore = new X509Store(storeName, storeLocation);
certificatesStore.Open(OpenFlags.OpenExistingOnly);
var matchingCertificates = certificatesStore.Certificates.Find(X509FindType.FindBySerialNumber, serialNumber, true);
request.ClientCertificates.Add(matchingCertificates );

答案 2 :(得分:-1)

你得到了解决方案吗? 我注意到我的Windows 10机器和Windows 2008RC服务器的Windows更新导致了我们的问题。我们遇到的问题是我们无法从SHA1加密证书中快速更改第三方服务器。

解决方法是卸载此处列出的更新。 https://blogs.windows.com/msedgedev/2016/04/29/sha1-deprecation-roadmap/

另一种方法是添加以下代码:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

参考:Could not establish trust relationship for SSL/TLS secure channel -- SOAP

然而,这对我们不起作用。