簡體   English   中英

使用 .NET Framework 4.7+ 發出 TLS 1.2 請求的問題

[英]Issues making a TLS 1.2 request with .NET Framework 4.7+

我們有一個在 Azure 雲應用服務上運行的 .NET 4.7+ 應用程序。 當我們嘗試使用 HttpWebRequest 調用最低 TLS 1.2 的 API 時,我們收到“請求中止:無法創建 SSL/TLS 安全通道”錯誤。 到目前為止我讀過的內容:

  • Microsoft 強烈建議不要對ServicePointManager.SecurityProtocol進行硬編碼,因此除非絕對必要,否則我會盡量避免使用該解決方案。 微軟指南
  • .NET 4.7+ 應默認為 TLS 1.2 或使用操作系統配置。 在我的 Azure 應用程序中,TLS 1.2 被設置為Microsoft 的最低指南

什么可能導致我的應用使用較低的 TLS 版本? 我已經搜索了代碼,但在任何地方都找不到手動 TLS 配置。 設置ServicePointManager.SecurityProtocol真的是我唯一的解決方案嗎?

在你的代碼中添加這個:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12

或者

如果您有可執行文件,只需更新關聯的配置文件,此文件始終命名為[可執行文件的名稱].exe.config。 如果沒有這樣的文件,請創建一個。

找到或創建后,更新其內容以啟用支持 TLS 1.2 所需的兼容性開關:

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
  <runtime>
  <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/>
  </runtime>
</configuration>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM