无法向 Apache 服务器发出 http2 请求,尽管服务器发送 "Upgrade:h2" 作为响应 headers

Unable to make http2 requests to an Apache Server, though the server sends "Upgrade:h2" in response headers

我已经为 Apache Web 服务器启用了 mod_http2,并在 conf 中进行了必要的更改,仍然从浏览器向服务器发出的任何请求都遵循 http/1.1 协议

服务器发送 Upgrade:h2 header 字段,但浏览器仍然继续发出 http/1.1 请求。

如何从 Mozilla/Chrome 发出 h2 请求? 我正在使用 Mozilla Firefox 48.0

  1. 检查是否在 Firefox 中启用了 HTTP/2 支持:

在 Firefox 的地址栏中,键入 "about:config",然后搜索 "network.http.spdy.enabled.http2" 并确保它已设置为 true。

  1. Firefox 仅在 TLS
  2. 上实施 HTTP/2

因此,您必须使用 https://xxxxx

访问该网站

浏览器目前仅通过 https 支持 HTTP/2。参见 http://caniuse.com/#feat=http2 注释编号 2.

HTTP/2 标准对 https 提出了一些额外要求,不能使用来自指定 black list 的密码。

与此相关的可接受的 Apache SSL 配置是:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
SSLProtocol All -SSLv2 -SSLv3

这需要在 httpd 配置文件中更改,并且 NS_ERROR_NET_INADEQUATE_SECURITY 不应在 httpd 重启后发生。