【问题标题】:HTTP/2 not working on RHEL 6 & Apache 2.4.34HTTP/2 不适用于 RHEL 6 和 Apache 2.4.34
【发布时间】:2019-03-30 04:59:15
【问题描述】:

在我们的服务器上运行 HTTP/2 时遇到问题。下面是我们的配置:

# httpd -v
Server version: Apache/2.4.34 (IUS)

# apachectl -M
Loaded Modules:
....
http2_module (shared)
....
mpm_event_module (shared)

# more vhost.conf
....
SSLEngine on
SSLCipherSuite AES256-SHA:AES128-SHA:DHE-DSS-AES256-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA
SSLProtocol TLSv1.2
....
Protocols h2 h2c http/1.1

我在许多帖子中读到这可能是 mpm_prefork 的问题,但正如您所见,我们使用的是 mpm_event。另请阅读,这可能是列入黑名单的 SSLCpherSuite 的问题,但我们使用的没有一个在黑名单上。查看标题,我确实看到了升级:

Version: HTTP/1.1
....
Upgrade h2,h2c

这应该可以工作,但是我们运行的每个在线测试都告诉我们,我们的服务器不支持 HTTP/2。任何帮助将不胜感激。

【问题讨论】:

    标签: apache http2


    【解决方案1】:

    另请阅读,这可能是列入黑名单的 SSLCpherSuite 的问题,但我们使用的没有一个在黑名单上。

    他们都在blacklist

    例如,AES256-SHA 是 TLS_RSA_WITH_AES_256_CBC_SHA,如下所示:https://testssl.sh/openssl-rfc.mapping.html

    使用Mozilla SSL config generator 选择更好的密码列表。如果您支持 TLSv1.2,您将支持更好的密码。

    另一个原因可能是缺乏 ALPN 支持。您需要使用 OpenSSL 1.0.2 或更高版本构建您的 Apache。

    最后一个原因可能是您的服务器前面有其他东西(例如负载均衡器),它是入口点并且不支持 HTTP/2。

    通过https://www.ssllabs.com/servertest/ 运行您的服务器应该确认 ALPN 支持、您支持的密码以及是否支持 HTTP/2。

    【讨论】:

    • 谢谢你。我不知道名称差异,只是搜索了我们配置中列出的密码。我根据 SSL 配置工具更改了它们,并根据列表检查了每一个(必须删除黑名单上的 4 个,现在我们的密码套件看起来像这样:SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA- AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20 -POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    • 我们只支持 TLSv1.2。仍然不能使用 HTTP/2,所以我将研究 ALPN。由于我们没有从源代码构建 Apache 并且我们的 OpenSSL 版本是 1.0.1,因此需要做更多的工作。感谢您对密码进行名称映射。
    • OpenSSL 不够好。需要1.0.2或以上。在此处查看我的博客文章,了解如何从源代码构建:tunetheweb.com/performance/http2
    猜你喜欢
    • 2020-05-21
    • 2019-06-05
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 2017-07-24
    • 2019-05-08
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多