You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2019环境下IIS 10无法启用TLS 1.3的问题求助

解决Windows Server 2019上IIS 10启用TLS 1.3的问题

我之前在Windows Server 2019环境里折腾过一模一样的问题——明明系统本身支持TLS 1.3,Schannel注册表也按要求配置了,但IIS握手时最高还是只认TLS 1.2。后来试了几个方法终于搞定,分享给你:

1. 先仔细核对Schannel注册表配置(别漏了重启!)

很多时候不是配置错了,而是没重启整个服务器(仅重启IIS服务完全没用)。确保你的注册表项完全符合要求:

  • 定位路径:HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server
    • 创建DWORD值 Enabled,设置为 1
    • 创建DWORD值 DisabledByDefault,设置为 0
  • 同时检查密码套件优先级:在HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Cipher Suites中,把TLS 1.3的套件(比如TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256)移到最前面,确保优先级高于TLS 1.2的套件。

改完一定要重启服务器,让Schannel的配置彻底生效。

2. 用ARR反向代理中转TLS 1.3握手

IIS 10本身对TLS 1.3的原生支持确实有限,但Windows Server 2019的Http.sys组件是支持TLS 1.3的。我们可以用ARR(Application Request Routing)做反向代理,让ARR处理前端的TLS 1.3握手,再转发到后端的IIS应用:

  • 通过服务器管理器的Web平台安装程序,安装ARR和URL Rewrite模块
  • 在ARR中配置反向代理规则,指向你的目标IIS应用
  • 在ARR的服务器级别SSL设置里,启用TLS 1.3并绑定对应的证书
  • 后端IIS应用可以保持原有配置,因为ARR已经完成了TLS 1.3的握手环节

这个方法我亲测有效,而且不需要修改太多现有应用的配置。

3. 借助第三方工具简化配置

有个叫IIS Crypto的可视化工具可以帮你一键管理Schannel的TLS配置,它能自动生成正确的注册表项、调整密码套件顺序,直接勾选开启TLS 1.3就行。不过要注意,用工具配置后还是必须重启服务器才能生效。

另外补充一句:你提到Caddy能正常启用TLS 1.3,是因为Caddy用的是Go语言自带的TLS库,不依赖Windows的Schannel,所以不受IIS的限制。

内容的提问来源于stack exchange,提问作者Pradeep Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 14:52:49