IIS/Windows Server 2019无法使用HTTP/2协议

7

我有一台安装有Windows Server 2019和IIS 10的服务器。

根据https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/http2-on-iis,所有https站点都应该可以直接使用HTTP/2协议。

但是,我的站点仅以http/1.1模式工作。我使用Chrome/Firefox和在线工具https://tools.keycdn.com/http2-test检查结果为“不支持HTTP/2协议。ALPN扩展未被支持。”

我检查了http/1.1回退的常见原因:

  • Windows身份验证 - 我的站点已禁用此功能
  • 明文传输 - 我的站点启用了有效的SSL证书的https
  • 带宽限制 - 我的站点未启用带宽限制
  • 禁用HTTP/2的注册表设置 - 未设置

我的网站使用ASP.NET,但简单的HTML也只能以HTTP/1.1下载。

有什么想法下一步需要检查什么?


是的,我做到了 - 当我在IE中加载https://localhost时,在协议列中它显示为HTTPS(而不是HTTP/2)。 - Plamen Ignatov
是的,IE已启用HTTP/2。Firefox(安装在服务器上)也显示HTTP/1.1。 - Plamen Ignatov
1
@PlamenIgnatov,您曾经成功解决过这个问题吗?我有一个安装了有效SSL证书的Win 2016服务器。它通过http1提供所有内容。您链接的工具显示我的网站支持http2协议。我使用最新版的Chrome进行诊断。客户端和服务器都支持http2协议。没有任何需要配置的设置,因此这个问题令人沮丧。它应该可以正常工作,但为什么不行呢? - Jay
1
我没有找到问题。尝试了数据包嗅探、错误日志记录等方法,但都没有起作用。 - Plamen Ignatov
2
你解决过这个问题吗?只是希望 - 情况类似。 - TampaCraig
显示剩余3条评论
2个回答

1

这很可能是你们都在寻找的答案:

打开注册表编辑器并导航到:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

请确保您拥有以下条目:

EnableHttp2Cleartext REG_DWORD    1
EnableHttp2Tls    REG_DWORD    1

重新启动。


0
在我的情况下,我禁用了TLS 1.0和TLS 1.1。你有两个选项:
  1. 编辑注册表键
  2. 安装IISCrypto并取消选中TLS 1.0和TLS 1.1
注意:您需要重新启动服务器以应用更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接