![应用 KB3140245 后如何将 TLS 协议设置为默认协议?](https://linux22.com/image/1494371/%E5%BA%94%E7%94%A8%20KB3140245%20%E5%90%8E%E5%A6%82%E4%BD%95%E5%B0%86%20TLS%20%E5%8D%8F%E8%AE%AE%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E5%8D%8F%E8%AE%AE%EF%BC%9F.png)
这是关于在 64 位 Windows 7 计算机上安装 Windows 更新 KB3140245 的说明。
微软不久前发布了此更新,其中“允许用户更改 WinHTTP 的系统范围默认协议,并将 Webio 默认协议硬编码为包含 TLS 1.1 和 TLS 1.2”,解释如下在知识库文章中。
将 TLS 设置为默认值可能有助于缓解 SSL 的安全问题。
这个问题是关于知识文章的这一部分:
可以在以下路径添加 DefaultSecureProtocols 注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet 设置\WinHttp
在基于 x64 的计算机上,还必须将 DefaultSecureProtocols 添加到 Wow6432Node 路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet 设置\WinHttp
注册表值是 DWORD 位图。可以任意组合使用以下值来默认启用多个协议:
...或者更具体地说,下图中用红色突出显示的说明部分:
首先,说明似乎暗示用户可以DefaultSecureProtocols
组合输入多个名称的 DWORD 值,但这是不可能的(值的名称在特定键下必须是唯一的)。
其次,知识库文章中显示的(十六进制)值太长(无法按照注册表编辑器中给出的那样输入它们),如下图所示:
所以我想问的问题是:
鉴于 DWORD 注册表值的限制,如何组合输入 TLS 1.0、TLS 1.1 和 TLS 1.2 显示的 3 个值?
答案1
结合@Moab 的建议(获取 DEC 值),您可以通过简单调用在注册表中编辑它reg.exe
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" /V "DefaultSecureProtocols" /T REG_DWORD /D 2560 /F
将其设置为 0x00000A00。
答案2
以防别人需要这个。
如果需要启用 TLS 1.0、1.1 和 1.2,请将值更改为 A80。
您可以使用 Windows 10 附带的默认计算器计算该值。
- 将模式从标准模式更改为程序员模式
- 点击 HEX
- 80 + 200 + 800 = A80
检查原始问题的第一张图片,查看如果需要启用其他协议可以添加的值。