未能創建 SSL/TLS 安全通道

事件背景

對接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 的不斷演進和改進有助於保護用戶隱私和網絡安全。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章