Windows TLS 加固:Schannel、密码套件与可回滚
用 TLS 1.2/1.3、克制的密码套件、注册表备份和客户端测试加固 IIS/Nginx,再禁用旧协议。
测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1- 版本号
- 26100.33650
- 版本
- Standard / Datacenter
- 架构
- x64
- 支持
- 文档(E1)
- 证据
- E1官方文档
- 核验日期
- 2026-10-29
- 页面类型
- 任务
Windows TLS 是 Schannel;IIS/HTTP.sys 和许多服务都用它。加固要克制:
- 盘点客户端和协议。
- 开 TLS 1.2/1.3;客户端测试后再关 1.0/1.1。
- 去掉已知弱套件;优先 ECDHE + AES-GCM/ChaCha20。
- 改前备份注册表。
- 用
openssl s_client和真实客户端矩阵测。
不要把网上的“完美 TLS”注册表直接粘到生产。
看当前提供什么
Section titled “看当前提供什么”Get-TlsCipherSuite | Select-Object Name,Protocolopenssl s_client -connect lab.example:443 -servername lab.example -tls1_2openssl s_client -connect lab.example:443 -servername lab.example -tls1_3openssl 显示协商协议/套件。外部视角用 TLS 扫描器;不要只看浏览器小锁。
注册表路径(机器策略):
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\ServerHKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\ServerHKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\ServerHKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server典型加固:旧协议 Enabled=0、DisabledByDefault=1;1.2/1.3 Enabled=1、DisabledByDefault=0。Schannel 改动通常要重启。
先备份:
reg export "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" C:\backup\schannel.regGet-TlsCipherSuite | Sort-Object NameDisable-TlsCipherSuite -Name 'TLS_RSA_WITH_3DES_EDE_CBC_SHA'优先 ECDHE + AES-GCM/ChaCha20。旧客户端还需要某 CBC 套件时不要全禁;记录例外。旧客户端可能受套件顺序影响。
IIS 与 Nginx
Section titled “IIS 与 Nginx”- IIS 用 Schannel;站点绑定只选证书。
- Nginx 用 OpenSSL,不走 Schannel。Windows Nginx TLS 由
ssl_protocols/ssl_ciphers决定,不是注册表。 - 同一台机器两者都有,分开加固。
# beforeopenssl s_client -connect lab.example:443 -servername lab.example -tls1_2 </dev/null# aftercurl.exe -I https://lab.example/至少测:当前 Chrome/Edge、移动端、API 客户端、必须支持的旧设备。
E1。实验室 WAC 用自签名证书,没有改 Schannel。注册表/套件步骤是 Server 2025 上待验证的加固计划。