SSL 工具集 / sslops.cn

ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY 错误解决方法

Windows Server 的 IIS 网站启用 HTTP/2 后,Chrome 访问可能报错 ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY,页面无法打开。

Chrome 访问报 ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY 错误

原因

Windows Server 默认开启了 HTTP/2,但系统加密套件列表中若存在 HTTP/2 明确禁止的弱算法(如 RC4、Triple DES),或启用了过低的 TLS 版本,TLS 握手协商出的配置不符合 HTTP/2 的强制要求(RFC 7540),浏览器就会中断连接并报此错误。

解决方法一:用 IIS Crypto 修正协议与套件(推荐)

IIS Crypto 是 Nartac Software 出品的免费工具,可以在图形界面里直接调整 Windows 的 Schannel 协议与套件配置,无需手动改注册表。

  1. 下载 IIS Crypto,以管理员身份运行。
  2. 在 Protocols 页:勾选 TLS 1.2、TLS 1.3,取消勾选 SSL 2.0、SSL 3.0、TLS 1.0、TLS 1.1。
  3. 在 Ciphers 页:取消勾选 RC4、Triple DES 168 等弱加密套件,保留 AES-GCM 系列。
  4. 点击 Apply,按提示重启服务器。

IIS Crypto 工具的协议(Protocols)配置页

IIS Crypto 工具的加密套件(Ciphers)配置页

此方法保留 HTTP/2 的性能收益,同时彻底消除弱协议和弱套件,是最推荐的方案。修改后也可以顺便用 SSL/TLS 检测工具确认站点评级是否达到 A 档。

解决方法二:禁用 HTTP/2(仅应急使用)

如果暂时无法调整套件,也可以直接在服务器上禁用 HTTP/2,让浏览器回退到 HTTP/1.1。此方法会损失 HTTP/2 的性能优势,仅建议作为应急手段。

  1. 运行 regedit 打开注册表,进入以下路径:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]

注册表编辑器定位到 HTTP\Parameters 路径

  1. 新建两个 DWORD (32 位) 值,数值数据均设为 0:
名称 数值 作用
EnableHttp2Tls 0 禁用基于 HTTPS 的 HTTP/2
EnableHttp2Cleartext 0 禁用基于明文的 HTTP/2(h2c)

注册表中新建 EnableHttp2Tls 与 EnableHttp2Cleartext 两个 DWORD 值

  1. 重启服务器生效。

小结

两种方法都需要重启服务器才能生效。建议优先使用方法一:不仅解决报错,还能顺带提升站点的 TLS 安全评级;方法二只是绕过问题,弱套件依然存在,后续应尽快按方法一修正。

相关工具