請求被中止: 未能創建 SSL/TLS 安全通道 解決方案


最近項目改造https,有部分請求出現“請求被中止: 未能創建 SSL/TLS 安全通道”。

原因應該是,接口方變更了安全協議,而客戶端並未啟用該協議。

解決辦法自然就是:讓客戶端啟用該協議。具體就是在發起網絡請求之前確保ServicePointManager.SecurityProtocol中含有服務端所用的安全協議,如果不知道或希望客戶端健壯一點,當然最簡單的方式就是把所有可用的協議都啟用,隨你服務端將來怎么換。代碼如下:

if (url.ToLower().StartsWith("https"))
 {
   ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 
              | SecurityProtocolType.Tls
              | SecurityProtocolType.Tls11
              | SecurityProtocolType.Tls12; }

上線后,發現部分接口請求還是會出現上面問題。

經過分析發現,

1.都是同一套架構,不會存在配置或其他問題。

2.接口有時可以有時不可以(初步懷疑有節點沒部署上)

3.分析日志發現大部分都是請求時間長的接口返回的。

結論:

如果請求超時
http請求,會返回——> GatewayTimeout
https請求會返回——> 請求被中止: 未能創建 SSL/TLS 安全通道。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM