KB5017811 - 在 2022 年 9 月 20 日預設行為變更之後,管理傳輸層安全性 (TLS) 1.0 和 1.1

套用到
Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 IoT Core LTSC Windows Server 2019 Windows 10 Enterprise Multi-Session, version 20H2 Windows 10 Enterprise and Education, version 20H2 Windows 10 IoT Enterprise, version 20H2 Windows 10 on Surface Hub Windows 10, version 21H1, all editions Windows 10, version 21H2, all editions

摘要

傳輸層安全性 (TLS) 1.0 和 1.1 是安全性通訊協定,可透過電腦網路建立加密通道。 Microsoft 自 Windows XP 和 Windows Server 2003 以來一直支援這些功能。 然而,監管要求正在改變。 此外,TLS 1.0 中還有新的安全性弱點。 因此,Microsoft 建議您移除 TLS 1.0 和 1.1 相依性。 我們也建議您盡可能在作業系統層級停用 TLS 1.0 和 1.1。 如需詳細資訊,請參閱停用 TLS 1.0 和 1.1。 在 2022 年 9 月 20 日的預覽更新中,對於以 winhttp 和 wininet 為基礎的應用程式,我們將預設停用 TLS 1.0 和 1.1。 這是持續努力的一部分。 本文將協助您重新啟用它們。 這些變更將會在安裝 2022 年 9 月 20 日或之後發行的 Windows更新之後反映。

2022 年 9 月 20 日之後,當您的瀏覽器開啟使用 TLS 1.0 或 1.1 的網站時,將會出現一則訊息。 請參閱圖 1。 該訊息指出網站使用過時或不安全的 TLS 通訊協定。 若要解決此問題,您可以將 TLS 通訊協定更新為 TLS 1.2 或更新版本。 如果無法這樣做,您可以啟用 TLS,如啟用 TLS 1.1 版及以下版本中所述。

存取 TLS 1.0 和 1.1 連結時出現 Internet Explorer 視窗

圖 1:存取 TLS 1.0 和 1.1 網頁時的瀏覽器視窗

更新之後,以 winhttp 為基礎的應用程式可能會失敗。 錯誤訊息為「執行 WinHttpSendRequest 作業時ERROR_WINHTTP_SECURE_FAILURE」。

當應用程式嘗試使用 TLS 1.1 及以下版本建立連線時,連線可能會顯示失敗。 當您關閉應用程式或應用程式停止運作時,會出現 [程式相容性小幫手 (PCA) ] 對話方塊,如圖 2 所示。

關閉應用程式後出現程式相容性小幫手

圖 2:關閉應用程式後的 [程式相容性小幫手] 對話方塊

PCA 對話方塊指出「此程式可能未正確執行」。 在此情況下,有兩個選項:

  • 使用相容性設定執行程式
  • 此程式已正確執行

使用相容性設定執行程式

當您選擇此選項時,應用程式會重新開啟。 現在,所有使用 TLS 1.0 和 1.1 的連結都能正常運作。 從那時起,將不會出現任何 PCA 對話方塊。 [登錄編輯程式] 會將項目新增至下列路徑:

  • Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store。
  • Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers。

如果您誤選此選項,您可以刪除這些項目。 如果您刪除它們,下次開啟應用程式時就會看到 [PCA] 對話方塊。

應該使用相容性設定執行的程式清單

圖 3:應該使用相容性設定執行的程式清單

此程式已正確執行

當您選擇此選項時,應用程式會正常關閉。 下次重新開啟應用程式時,不會出現 PCA 對話方塊。 系統會封鎖所有 TLS 1.0 和 1.1 內容。 [登錄編輯程式] 會將下列項目新增至路徑 Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store。 請參閱圖 4。 如果您誤選此選項,可以刪除此項目。 如果您刪除項目,下次開啟應用程式時,就會看到 PCA 對話方塊。

登錄編輯程式中指定應用程式正確執行的項目

圖 4:登錄編輯程式中指出應用程式已正確執行的項目

重要 只有特定應用程式才會啟用舊版 TLS 通訊協定。 即使它們在全系統設定中已停用,也是如此。

啟用 TLS 1.1 版以下 (wininet 和 Internet Explorer 設定)

不建議啟用 TLS 1.1 及以下版本,因為它們不再被視為安全。 它們很容易受到各種攻擊,例如貴賓犬攻擊。 因此,在啟用 TLS 1.1 之前,請執行下列其中一個動作:

  • 檢查是否有較新版本的應用程式可用。
  • 請應用程式開發人員在應用程式中變更設定,以移除對 TLS 1.1 及以下版本的相依性。

如果所有解決方案都不起作用,則有兩種方法可以在全系統設定中啟用舊版 TLS 通訊協定:

  • 網際網路選項
  • 群組原則編輯器

網際網路選項

若要開啟網際網路選項,請在工作列上的搜尋方塊中輸入 網際網路選項 。 您也可以從圖 1 所示的對話方塊中選取 [變更設定 ]。 在 [ 進階 ] 索引標籤上,在 [設定 ] 面板中向下捲動。 您可以在該處啟用或停用 TLS 通訊協定。

網際網路選項視窗

圖 5:[網際網路內容] 對話方塊

群組原則編輯器

若要開啟群組原則編輯器,請在工作列搜尋方塊中輸入 gpedit.msc。 隨即出現如圖 6 所示的視窗。

群組原則編輯器視窗

圖 6:群組原則編輯器視窗

  1. 瀏覽至 [本機電腦原則>] ([電腦設定] 或 [使用者設定]) >[系統管理標準>] Windows元件>Internet Explorer>Internet 控制台>進階頁面>關閉加密支援。請參閱圖 7。
  2. 按兩下 [關閉加密支援]。
    在 GPedit.msc 中關閉加密支援的路徑
    圖 7:在群組原則編輯器中關閉加密支援的路徑
  3. 選取 [啟用] 選項。 然後使用下拉式清單選取您想要啟用的 TLS 版本,如圖 8 所示。
    關閉加密支援並顯示各種選項的下拉式清單
    圖 8:啟用 [關閉加密] 支援和下拉式清單

一旦在 [群組原則編輯器] 中啟用此原則,您就無法在 [網際網路選項] 中變更該原則。 例如,如果您選取 [使用 SSL3.0 和 TLS 1.0],則 [網際網路選項] 中的所有其他選項將無法使用。 請參閱圖 9。 如果您在群組原則編輯器中啟用 [關閉加密支援],就無法變更 [網際網路選項] 中的任何設定。

SSL 和 TLS 設定呈現灰色的網際網路選項

圖 9:網際網路選項顯示無法使用的 SSL 和 TLS 設定

啟用 TLS 1.1 版以下 (winhttp 設定)

請參閱更新以在 Windows 中啟用 TLS 1.1 和 TLS 1.2 做為 WinHTTP 中的預設安全通訊協定。

重要登錄路徑 (wininet 和 Internet Explorer 設定)

  • Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings

    • 您可以在這裡找到 SecureProtocols,如果您使用群組原則編輯器,它會儲存目前啟用通訊協定的值。
  • Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

    • 您可以在這裡找到 SecureProtocols,如果您使用 Internet Options,它會儲存目前啟用通訊協定的值。
  • 群組原則 SecureProtocols 的優先順序高於 [網際網路選項] 所設定的方案。

啟用不安全的 TLS 後援

上述修改將啟用 TLS 1.0 和 TLS 1.1。 不過,它們不會啟用 TLS 後援。 若要啟用 TLS 後援,您必須在下列路徑下的登錄中,將 EnableInsecureTlsFallback 設定為 1。

  • 若要變更設定: SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
  • 若要設定原則:SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings

如果 EnableInsecureTlsFallback 不存在,則您必須建立新的 DWORD 項目,並將其設定為 1。

重要的登錄路徑

  1. ForceDefaultSecureProtocols

    • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
    • 預設為 FALSE。 設定非零值會阻止應用程式使用 winhttp 選項設定自訂通訊協定。
  2. EnableInsecureTlsFallback

    • 若要變更設定: SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
    • 若要設定原則:SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
    • 預設為 FALSE。 設定非零值可讓應用程式在使用安全通訊協定 ( (TLS1.2 和更新版本) 握手失敗時,) 回退為不安全的通訊協定 TLS1.0 和 1.1。