目录
← 全部文章

Windows 11 启用 TLS 1.0 / TLS 1.1 的方法

Windows 11 默认禁用已被 TLS 1.2 与 1.3 取代的 TLS 1.0 和 1.1,部分旧应用可能无法连接。本文说明影响范围,并提供一键启用的注册表脚本与安全提醒。

在 Windows 11 上,即使官方不再推荐,你仍然可以重新启用传输层安全(TLS)协议的 1.0 和 1.1 版本。本文说明为什么要这样做以及如何用脚本来完成。

TLS 1.0 / 1.1 为什么被默认禁用

TLS 是一种加密协议,在客户端和服务器之间建立安全通信,广泛用于电子邮件、即时消息和 IP 语音等场景。TLS 1.1 于 2006 年发布,TLS 1.0 更早,两者都存在已公开的协议漏洞,早已被 TLS 1.2 和 1.3 取代。目前的协议实现会优先协商使用最高可用版本。

由于旧版本使用率已经很低,微软在 Windows 11 上默认禁用 TLS 1.0 和 1.1。但这会影响到仍依赖旧协议的应用,例如 Microsoft SQL Server 2012、2014、2016 以及 Office 2008 等较老产品。

Windows 11 TLS 版本设置示意

方法一:批处理脚本启用

把以下内容保存为 enable-tls.bat,右键选择「以管理员身份运行」即可。

@echo off

set SysconfigEnv=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
set TlsVer=0xC0
set TlsName=TlsVersion

echo "修改默认使用的TLS版本"
reg add "%SysconfigEnv%\RasMan\PPP\EAP\13" /v TlsVersion /t reg_dword /d "%TlsVer%" /f
echo "已执行完毕,若提示无权限,请右键管理员身份执行该批处理脚本."

pause

该脚本修改的是 RasMan\PPP\EAP\13 下的 TlsVersion(0xC0),作用于 RAS 拨号 / PPP 的 EAP 协商,并非系统级启用 TLS 1.0/1.1;需要全局启用,请使用方法二中的 Schannel 注册表配置。若提示「拒绝访问」,说明当前不是管理员权限,请右键以管理员身份重新运行。该脚本来自既有实践,上线前请在测试机验证注册表写入与协商行为。

方法二:注册表手动设置

系统级 TLS 1.0/1.1 的开关位于 Schannel 配置中。在「运行」输入 regedit,进入:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

在 Protocols 下新建 TLS 1.0 与 TLS 1.1 两个项,各自新建键「Client」和「Server」,分别为 DisabledByDefault(DWORD,设为 0)与 Enabled(DWORD,设为 1)。修改后重启系统生效。

安全提醒:TLS 1.0 与 1.1 已被公开的攻击手段利用,除非确有旧应用必需,否则不建议在面向公网的机器上开启。开启前先评估连接受影响的业务,并与杀毒软件、防火墙策略保持一致。

小结

在 Windows 11 上启用 TLS 1.0/1.1 主要有批处理和注册表两种途径。前者针对 PPP EAP 场景快速生效,后者用于系统级 Schannel 全局开关。两者的前提都是用管理员权限操作,并且都需要重启才能完整生效。

常见问题

问:为什么 Windows 11 默认禁用 TLS 1.0/1.1? 答:这两个旧版本存在已公开的漏洞、使用率已很低,并且早已被 TLS 1.2/1.3 取代,微软因此在 Windows 11 上默认禁用。

问:开启 TLS 1.0/1.1 有安全风险吗? 答:有。两者都有公开的攻击手段,除非确有旧应用必需,否则不建议在面向公网的机器上开启。

问:方法一的脚本开启的是全局 TLS 吗? 答:不是。该脚本只改 RasMan\PPP\EAP\13 的 TlsVersion,作用于 RAS 拨号 / PPP 的 EAP 协商;系统级全局开关请用方法二的 Schannel 注册表配置。

问:哪些老应用会受影响? 答:依赖旧协议实现的旧产品,例如 SQL Server 2012/2014/2016、Office 2008 等(是否受影响取决于应用自身的 TLS 实现)。

↑ 回到顶部