未能创建 SSL/TLS 安全通道

发布时间 2023-11-01 11:59:51作者: o李一波o

事件背景

对接ebay的时候,报错:未能创建 SSL/TLS 安全通道

调试发现

使用RestSharp并不会,HttpClient不行,猜测是RestSharp底层处理了TLS 1.2的支持

查阅资料

"未能创建 SSL/TLS 安全通道" 错误通常是由于 TLS 版本或加密协议不匹配引起的。通常情况下,你可以通过更新你的 .NET 版本来解决这个问题,以便支持更高版本的 TLS。
在 .NET Framework 4.5 及更早的版本中,默认情况下不支持 TLS 1.2,而许多网站已经升级到了 TLS 1.2。要解决这个问题,可以在应用程序启动时强制启用 TLS 1.2

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

将此代码添加到你的应用程序启动的地方,以确保使用 TLS 1.2 进行通信。如果仍然遇到问题,可能需要更新你的 .NET Framework 版本,以便获得更好的支持。
请注意,最好使用支持最新 TLS 标准的 .NET 版本,以确保你的应用程序能够与现代加密标准的网站进行通信。

解决办法

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
using (HttpClient client = new HttpClient())
{

}

拓展学习

TLS (Transport Layer Security) 是一种用于保护互联网通信安全性的协议。TLS 是 SSL (Secure Sockets Layer) 协议的继承者,用于加密数据传输和确保数据完整性。它的主要作用是在计算机之间创建安全的通信通道,以防止数据在传输过程中被窃取或篡改。

TLS 协议的主要功能包括:

1. **数据加密**:TLS 使用密码学技术来加密传输的数据,使数据在传输过程中不容易被拦截和解密。

2. **数据完整性**:TLS 使用消息摘要算法 (Message Digest) 来确保传输的数据在传输过程中没有被篡改或损坏。

3. **身份验证**:TLS 允许通信双方进行身份验证,确保你正在与预期的服务器或客户端通信,而不是恶意伪装者。

4. **支持多种加密算法**:TLS 支持多种不同的加密算法和密钥交换协议,以满足各种安全需求。

TLS 协议被广泛用于安全的网络通信,如网页浏览、电子邮件、即时通信、远程登录等领域。HTTPS(HTTP over TLS)是一种基于 TLS 的安全的 HTTP 通信协议,用于保护网站和用户之间的数据传输。 TLS 的不断演进和改进有助于保护用户隐私和网络安全。