如何在Windows和Mac客户端侧禁用单个TLS扩展?
如何在Windows和Mac客户端侧禁用单个TLS扩展?
我明白你想测试不同TLS 1.2/1.3扩展的支持情况,但浏览器内置设置里找不到单独开关的地方确实挺闹心的。下面分别说说Windows和Mac上怎么通过系统级配置来控制单个TLS扩展,顺便也提下浏览器专属的解决办法:
Windows系统
Windows的TLS配置主要存在注册表中,咱们可以通过修改特定键值来禁用指定的TLS扩展:
- 打开注册表编辑器:按下
Win + R,输入regedit回车。 - 导航到路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols - 找到你要配置的协议(TLS 1.2或TLS 1.3),进入其下的
Client子项(如果没有就右键新建项)。 - 右键
Client项,新建DWORD (32位)值,命名规则为DisableExtension_<扩展十六进制标识符>,比如:- 禁用EC_POINT_FORMATS扩展(标识符000A):命名为
DisableExtension_000A,值设为1 - 禁用ALPN扩展(标识符0010):命名为
DisableExtension_0010,值设为1 - 禁用Session Ticket扩展(标识符0023):命名为
DisableExtension_0023,值设为1
- 禁用EC_POINT_FORMATS扩展(标识符000A):命名为
- 修改完成后,必须重启电脑才能让设置生效。
⚠️ 注意:修改注册表有风险,操作前最好备份整个注册表或者目标分支,避免误操作导致系统问题。
Mac系统
macOS的TLS扩展控制分为系统级和应用级两种方式:
系统级配置(针对使用系统Secure Transport的应用,比如Safari)
- 打开终端,使用
defaults命令添加禁用的扩展标识符:- 比如禁用TLS 1.3的QUIC扩展(标识符001C):
defaults write com.apple.networkextension TLS13DisabledExtensions -array "001C" - 若要禁用多个扩展,继续用
-array-add追加:defaults write com.apple.networkextension TLS13DisabledExtensions -array-add "0010"
- 比如禁用TLS 1.3的QUIC扩展(标识符001C):
- 修改完成后,重启电脑或者重启网络服务(比如执行
sudo killall -HUP networkd)让设置生效。
浏览器专属方案(比如Chrome)
像Chrome这类使用独立SSL库(BoringSSL)的浏览器,系统级设置可能不生效,这时候可以用启动参数来控制:
- 右键Chrome快捷方式(Windows)或者Chrome应用图标(Mac),选择“属性”(Windows)或“显示包内容”(Mac)。
- 在启动目标末尾添加对应的参数:
- 禁用ALPN:
--disable-features=SSL_ALPN - 禁用Session Ticket:
--disable-features=SSL_SESSION_TICKET - 强制使用TLS 1.2:
--ssl-version-min=tls1.2 --ssl-version-max=tls1.2
- 禁用ALPN:
- 保存设置后重启Chrome即可生效。
备注:内容来源于stack exchange,提问作者miran80
相关产品推荐
相关产品推荐

