0


HTTPS接口 无法建立SSL / TLS安全通道的解决方案 (总结性)

访问HTTPS接口时,总是出现请求被中止:无法建立SSL / TLS安全通道的解决方案

我使用HttpWebRequest访问HTTPS的接口时时,出现"请求被中止:无法建立 SSL / TLS安全通道"错误,百度了一下,搜到两个答案,都写下来,以供参考
第一个:
public ResponseModel GetHtml(string url)
{
//必须写在请求Url之前
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
/如果你的程序是.NET 4.0的,可以这样写:
ServicePointManager.SecurityProtocol = (SecurityProtocolType) 192 |(SecurityProtocolType) 768 |(SecurityProtocolType) 3072;
/

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

}

第二个
public ResponseModel GetHtml(string url)
{
//必须在请求URL之前
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
}

//验证服务证书 返回True 解决Https无法建立 SSL / TLS安全通道"错误
private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}

我的项目中选择了第二种方式。
第一种方式也是可以的,根据个人喜好吧。
以下是对第一种方式的补充:
ServicePointManager.SecurityProtocol支持的安全协议类型包括以下几种:
TLS1.2是 TLS(Transport Layer Security)协议的最新版本,它是一种安全协议,用于加密网络通信并确保数据的完整性,TLS1.2现在已成为最具安全性的TLS协议版本。
TLS1.1是 TLS 协议的一种旧版本,用于加密网络通信并确保数据的完整性。
TLS是 SSL(Secure Sockets Layer)协议的一个后续版本。它是一种安全协议,用于加密网络通信并确保数据的完整性。
SSL3.0是 SSL 协议的一个旧版本,已经被淘汰,目前已经不再安全。
注意事项
在进行网络请求时,如果使用了 ServicePointManager.SecurityProtocol,则应该遵循以下注意事项:
1、不要在不受信任的网络上使用不安全的协议,例如 SSL3.0。
2、根据实际需要设置安全协议类型,不要设置过多的协议类型,以避免协议混用带来的风险。
3、如果协议被禁用,将无法进行请求,因此要确保服务器端与客户端协议版本的一致性,以保证无法协商时不会发生通信失败的问题。
4、ServicePointManager.SecurityProtocol 是全局控制,不需要每次请求都指定。

Tls 192
指定传输层安全 (TLS) 1.0 安全协议。 TLS 1.0 协议在 IETF RFC 2246 中定义。
Tls11 768
指定传输层安全 (TLS) 1.1 安全协议。 TLS 1.1 协议在 IETF RFC 4346 中定义。 在 Windows 系统上,从 Windows 7 开始支持此值。
Tls12 3072
指定传输层安全 (TLS) 1.2 安全协议。 TLS 1.2 协议在 IETF RFC 5246 中定义。 在 Windows 系统上,从 Windows 7 开始支持此值。
Tls13 12288
指定 TLS 1.3 安全协议。 此 TLS 协议在 IETF RFC 8446 定义。

标签: https ssl 安全

本文转载自: https://blog.csdn.net/jfx0309/article/details/134327841
版权归原作者 jfx0309 所有, 如有侵权,请联系我们删除。

“HTTPS接口 无法建立SSL / TLS安全通道的解决方案 (总结性)”的评论:

还没有评论