Applies ToWin 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 是用于通过计算机网络创建加密通道的安全协议。 自 Windows XP 和 Windows Server 2003 以来,Microsoft一直支持它们。 但是,法规要求正在发生变化。 此外,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 更新后反映出来。  

在浏览器中访问 TLS 1.0 和 1.1 链接时的行为

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 应用程序中的 TLS 1.0 和 1.1 链接时的行为

更新后,基于 winhttp 的应用程序可能会失败。 错误消息为“在执行 WinHttpSendRequest 操作时ERROR_WINHTTP_SECURE_FAILURE”。

访问基于 winhttp 或 wininet 的自定义 UI 应用程序中的 TLS 1.0 和 1.1 链接时的行为

当应用程序尝试使用 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 及更低版本,因为它们不再被视为安全。 它们容易受到各种攻击,例如 POODLE 攻击。 因此,在启用 TLS 1.1 之前,请执行下列操作之一:

  • 检查是否有较新版本的应用程序可用。

  • 要求应用开发人员在应用中进行配置更改,以删除 TLS 1.1 及更低版本的依赖项。

如果解决方案均不起作用,则可通过两种方法在系统范围的设置中启用旧 TLS 协议:

  • Internet 选项

  • 组策略编辑器

Internet 选项

若要打开“Internet 选项”,请在任务栏上的搜索框中键入“ Internet 选项 ”。 还可以从图 1 所示的对话框中选择“ 更改设置 ”。 在“ 高级 ”选项卡上,在 “设置” 面板中向下滚动。 可以在那里启用或禁用 TLS 协议。

“Internet 选项”窗口

图 5:“Internet 属性”对话框

组策略编辑器

若要打开组策略编辑器,请在任务栏搜索框中键入 gpedit.msc。 此时会显示一个如图 6 所示的窗口。 

组策略编辑器窗口

图 6:组策略编辑器窗口

  1. 导航到“本地计算机策略> (计算机配置”或“用户配置”) >,> Windows 组件>Internet Explorer > Internet 控制面板 > 高级页面>关闭加密支持。 请参阅图 7。

  2. 双击“ 关闭加密支持”。

    用于在 GPedit.msc 中关闭加密支持的路径

    图 7:在组策略编辑器中关闭加密支持的路径

  3. 选择 “已启用” 选项。 然后使用下拉列表选择要启用的 TLS 版本,如图 8 所示。

    关闭启用的加密支持,并显示各种选项的下拉列表

    图 8:启用“关闭加密支持和下拉列表”

在组策略编辑器中启用策略后,无法在 Internet 选项中对其进行更改。 例如,如果选择“ 使用 SSL3.0 和 TLS 1.0”,则所有其他选项在“Internet 选项”中将不可用。 请参阅图 9。 如果在“组策略编辑器”中启用“关闭加密支持”,则无法更改“Internet 选项”中的任何设置。

具有灰显 SSL 和 TLS 设置的 Internet 选项

图 9:显示 SSL 和 TLS 设置不可用的 Internet 选项

启用 TLS 版本 1.1 及更低版本 (winhttp 设置)

请参阅更新以在 Windows 中的 WinHTTP 中启用 TLS 1.1 和 TLS 1.2 作为默认安全协议

重要的注册表路径 (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 选项,它将存储当前启用的协议的值。

  • 组策略 SecureProtocols 将优先于 Internet 选项设置的协议。

启用不安全的 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) 。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。