某个后台工具、Office 加载项或者老软件,昨天还好好的,今天突然连不上邮件服务器或网站?很大概率是它还在用过时的 TLS 协议去握手,而对方服务器早就不认了。以前微软提供过一个叫 Easy Fix 51044 的小工具来处理这事,现在官方已经下架。好消息是:它干的活说白了就是改几个注册表值,咱们手动改一样能搞定。
先说结论:把 WinHTTP 的 DefaultSecureProtocols 设为 0x00000A00(TLS 1.2 + TLS 1.1),再确认 Schannel 里的 TLS 1.2 没被关掉,重启电脑,绝大多数“老软件连不上”的问题就能解决。动手之前记得先备份注册表。
Easy Fix 51044 到底做了什么
它本身是个很小的 MSI 安装包,不会装任何软件,只是写入一个名为 DefaultSecureProtocols 的注册表值,告诉 WinHTTP 在连接服务器时默认可以使用哪些 TLS 版本。现在微软的 Fix it 中心已经关闭,所以我们直接手改。
Windows 10 / 11 还需要这么做吗
这个修复最初针对的是 Windows 7 和 Windows Server 2008 R2,那时候 WinHTTP 默认不支持 TLS 1.2。新版 Windows 本身支持 TLS 1.2,但下面几种情况你仍然可能用得上:
- 某个程序通过 WinHTTP 联网,却没能协商到 TLS 1.2;
- 安全加固工具或者有人手动在 Schannel 里把 TLS 1.2 关掉了;
- 你用的是比较旧的 Windows 或服务器版本。
动手之前:先做两件事
- 创建系统还原点:开始菜单搜索“创建还原点”。
- 备份要改的注册表项:在注册表编辑器里右键对应的项,选择“导出”。
方法一:用 .reg 文件一键导入
- 新建一个记事本文件,粘贴下面的内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000A00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001 - 点“文件 → 另存为”,保存类型选“所有文件”,文件名写成
Enable-TLS-1.2.reg。

- 双击该文件,按提示允许导入;
- 重启电脑。
很多人会漏掉 Wow6432Node 那一段。它管的是 64 位系统上的 32 位程序,老软件大多是 32 位的,所以别省。
方法二:在注册表编辑器里手动改
- 按 Win+R,输入
regedit,回车; - 依次定位到上面 .reg 文件里列出的每个路径;
- 如果缺少某个项或值,右键新建:值选“DWORD (32 位) 值”,项选“项”,名称照着上面写;
- 把每个值改好,然后重启。
DefaultSecureProtocols 数值对照表
| 协议 | 单个数值 |
|---|---|
| TLS 1.0 | 0x80 |
| TLS 1.1 | 0x200 |
| TLS 1.2 | 0x800 |
这几个值是可以相加的,常见组合有:
0x00000A80:TLS 1.2 + 1.1 + 1.0,只有某个老软件非要 TLS 1.0 时才考虑;0x00000800:只启用 TLS 1.2;0x00000A00:TLS 1.2 + 1.1,兼顾兼容性,是比较稳妥的默认选择。
关于 TLS 1.3
Windows 11 和 Windows Server 2022 已经内置 TLS 1.3 支持,不用手动改注册表。Windows 10 的 Schannel 不支持 TLS 1.3,所以给它加 TLS 1.3 的键值是没有用的,别白折腾。
怎么确认改成功了
重启后打开 PowerShell,运行:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" | Select-Object DefaultSecureProtocols 如果设置的是 0xA00,这里会显示十进制的 2560。再把路径换成 Wow6432Node 那一条跑一遍,确认 32 位的设置也生效。
可选:关掉不需要的旧协议
如果你的电脑上没有软件依赖 TLS 1.0 和 1.1,从安全角度看,可以把它们关掉:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001 如果这台机器还要当服务器用,把路径末尾的 Client 换成 Server 再来一遍。注意:特别老的软件可能只会说 TLS 1.0,关之前先确认它能不能升级。
改完还是不行?按这几步排查
- 看软件自己的设置里,是否强制指定了旧协议;
- 安装最新的 Windows 更新;
- 打开事件查看器,在“Windows 日志 → 系统”里搜索 Schannel 相关错误;
- 如果是 .NET 程序,还要留意
SchUseStrongCrypto这个设置,它同样会影响 TLS 版本的选择。
常见问题(FAQ)
Easy Fix 51044 还能下载吗?
微软的 Fix it 中心已经关闭,不建议再去找第三方来源的安装包。直接按本文改注册表,效果一样,也更放心。
改注册表需要重启吗?
建议重启。不重启的话,有些已经在运行的服务可能不会读取新设置。
为什么要同时改 Wow6432Node?
因为 64 位 Windows 上的 32 位程序读取的是这条路径,只改一处,另一类程序可能还是连不上。
Windows 10 能启用 TLS 1.3 吗?
Schannel 不支持,加注册表键值没有效果。需要 TLS 1.3 的场景,建议使用 Windows 11 或自带 TLS 实现的软件。
总结
Easy Fix 51044 虽然下架了,但它的核心就是几个注册表值。把 DefaultSecureProtocols 设为 0xA00,并确认 Schannel 里 TLS 1.2 处于启用状态,就能解决大部分因旧协议导致的连接失败。记得先备份、再修改、最后重启。修改系统设置有风险,请在了解影响的前提下操作。