未能为 SSL/TLS 安全通道建立信任的解决办法

2/10/2017来源:ASP.NET技巧人气:868

在通过

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "GET"; HttpWebResponse sp = (HttpWebResponse)req.GetResponse();

作处理时,有些输入有些URL会在HttpWebResponse sp = (HttpWebResponse)req.GetResponse();的时候抛出一个“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系”的异常。 最简单的办法是: 1,先加入命名空间:

using System.Net.Security; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates;

2,再重载CheckValidationResult方法,返回true

public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { // 总是接受 return true; }

3,然后在

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);

前面加上如下一行代码:

ServicePointManager.ServerCertificatidationCallback = new System.Net.Security.RemoteCertificatidationCallback(CheckValidationResult);//验证服务器证书回调自动验证