IIS/Windows Server 2019 没有 HTTP/2

Posted

技术标签:

【中文标题】IIS/Windows Server 2019 没有 HTTP/2【英文标题】:IIS/ Windows Server 2019 no HTTP/2 【发布时间】:2019-12-17 05:03:39 【问题描述】:

我有一台安装了 Windows Server 2019 和 IIS 10 的服务器。 根据https://docs.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 中下载的。

知道接下来要检查什么吗?

【问题讨论】:

你按照微软的文章测试localhost了吗? 是的,我做到了 - 当我在 IE 中加载 localhost 时,它在协议列中显示 HTTPS(不是 HTTP/2) @PlamenIgnatov,你有没有设法解决这个问题?我有一个带有有效 SSL 证书的 Win 2016 服务器。它通过 http1 提供一切服务。您链接的工具说我的网站支持http2。我正在使用最新的 Chrome 来诊断它。客户端和服务器都支持http2。没有为此配置的设置,所以这个问题令人沮丧。它应该工作,但它没有。为什么不呢? 我没有发现问题。尝试过数据包嗅探、错误记录 - 没有任何效果。 你解决过这个问题吗?只是希望 - 类似的情况。 【参考方案1】:

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

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

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

确保您有以下条目:

EnableHttp2Cleartext REG_DWORD    1
EnableHttp2Tls    REG_DWORD    1

重启。

【讨论】:

以上是关于IIS/Windows Server 2019 没有 HTTP/2的主要内容,如果未能解决你的问题,请参考以下文章

Windows Server 2008 中iis反向代理设置

xml htaccess for web.config IIS(Windows Server)for Wordpress

AngularJS文件上传抛出403 Forbidden - IIS Windows Server

如何在 IIS7 Windows Server 2008 R2 上启用 TLS1.2

IIS Windows Server 2012 中的 Blazor 问题 - “发生错误。此应用程序在重新加载之前可能不再响应。”

SQL Server 受信任的连接在 IIS 中有错误的用户,但 SSMS 正常