我在让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。另请阅读,将其列入黑名单的SSLChpherSuite可能是一个问题,但我们所使用的都不在黑名单中。查看标题,我确实看到了升级:
Version: HTTP/1.1
....
Upgrade h2,h2c
这应该可以工作,但是我们运行的每个在线测试都告诉我们我们的服务器不支持HTTP / 2。任何帮助将不胜感激。
答案 0 :(得分:1)
也请阅读,将其列入黑名单的SSLChpherSuite可能是一个问题,但我们所使用的都不在黑名单中。
所有人都在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支持。