Ssl

Windows Server 2012 R2 TLS 1.2 問題

  • April 25, 2022

我在我的 Windows Server 2012 R2(應用程序 Web 伺服器,IIS)上遇到了 TLS 1.2 的問題,即使在我看到之後我也無法通過 Internet Explorer訪問https://api.nuget.org/v3/index.json已啟用 TLS 1.2。

我有另一台具有相同作業系統和相同作業系統更新(但沒有 IIS)的伺服器,並且該伺服器使用 TLS 1.2 訪問 API 或任何其他端點沒有問題)

在有問題的伺服器上,我嘗試了以下方法:

  1. 使用 IISCrypto 啟用一切 -> 重新啟動 -> FAILED
  2. 按照 Microsoft 文件手動更改系統資料庫設置 - https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2 - 失敗
  3. 使用以下腳本完全重置並僅重新啟用 TLS 1.2 - https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12 - 失敗的

此時,我花了 3 天的時間嘗試排除故障,看看這兩台伺服器之間的問題是什麼,為什麼一台 windows 伺服器工作而另一台伺服器不工作。

任何提示、故障排除步驟或工具都將受到歡迎!

截圖 在此處輸入圖像描述

  • 通過 Nuget CLR
  • 在有問題的伺服器上 在此處輸入圖像描述
  • 在工作的伺服器上 在此處輸入圖像描述

因此,經過數小時的故障排除後,我終於能夠解決問題並通過 TLS 1.2 從我們的伺服器訪問 API。

我們的伺服器上有 .net 框架,無法訪問 API。微軟建議我們設置以下系統資料庫​​來強制 SystemDefaultTlsVersions

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

我的聲譽很低,所以我必須寫一個答案。

瀏覽器消息可能具有誤導性

您應該驗證 DNS 是否解析相同的目標以及客戶端是否檢測到任何類型的代理。

它們可能是防火牆的數據包檢查,也可能是透明代理。

驗證您在 openssl 中使用 s_client 得到的響應: https ://stackoverflow.com/questions/7885785/using-openssl-to-get-the-certificate-from-a-server

在瀏覽器中使用 DeveloperTools 查看“網路”並查看您的請求發送到哪裡(可能通過代理)以及您得到的響應。

在 Powershell 中禁用某些 SSL/TLS 檢查: https ://stackoverflow.com/questions/34331206/ignore-ssl-warning-with-powershell-downloadstring

驗證兩者是否具有相同的關於 IPv6 的網路配置。也許其中一個因此而連接到另一台伺服器。

編輯:至少做 openssl 檢查以確保您可以獲得正確的證書。禁用 Powershell 的 SSL/TLS 檢查和測試將有助於確定問題。

引用自:https://serverfault.com/questions/1099148