【发布时间】:2018-12-22 07:44:21
【问题描述】:
我想在这个网站上试用 HTTP/2:https://www.alebalweb-blog.com/
我最近使用 PHP 7.2、Apache/2.4.29 等将服务器更新到 Ubuntu 18.04
我做了:sudo a2enmod http2
添加:
#HTTP/2
Protocols h2 h2c http/1.1
在我的 VirtualHost SSL 中。
并重新启动 Apache。
SSL 证书由 Let's Encrypt 提供。
结果是:
curl -k -v --http2 https://alebalweb-blog.com
* Rebuilt URL to: https://alebalweb-blog.com/
* Trying 45.76.70.142...
* TCP_NODELAY set
* Connected to alebalweb-blog.com (45.76.70.142) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: CN=alebalweb-blog.com
* start date: Jul 7 02:02:06 2018 GMT
* expire date: Oct 5 02:02:06 2018 GMT
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
* SSL certificate verify ok.
> GET / HTTP/1.1
> Host: alebalweb-blog.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 13 Jul 2018 21:51:22 GMT
< Server: Apache/2.4.29 (Ubuntu)
< Upgrade: h2,h2c
< Connection: Upgrade
< Cache-Control: max-age=300
< Expires: Fri, 13 Jul 2018 21:56:22 GMT
< Vary: Accept-Encoding,User-Agent
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
我觉得真的很奇怪:
Upgrade: h2,h2c
Connection: Upgrade
什么意思?
HTTP/2 测试说:
HTTP/2 Test Result www.alebalweb-blog.com
Negative! www.alebalweb-blog.com does not support HTTP/2.0.
ALPN is not supported.
我觉得我错过了一些重要的事情......你能帮我理解一下吗?
【问题讨论】:
-
密钥是
* ALPN, server accepted to use http/1.1,这意味着服务器没有宣传h2支持。 -
这很奇怪,因为它支持 ALPN 和现代密码(很明显是现代版本的 OpenSSL,这通常是一个问题)并且正在发送升级标头(这表明 mod_http2 设置正确)。我猜你在不支持 HTTP/2 的 Apache(Nginx 负载均衡器和 CDN)前面有一些东西。
-
是 Vultr 服务器,Ubuntu 16.04 升级到 18.04,请问 Vultr 是否有什么东西不允许 HTTP/2 工作。
-
Vultr 回复我去查看文档部分,在文档部分中没有任何关于 HTTP/2 和 Apache 的内容......没有太多帮助......你能帮我弄清楚吗我在哪里可以看?
-
如果直接连接到服务器并执行
curl -k -v —http2 https://localhost,它是否工作?