HTTP2 不适用于 Nginx 1.10.1、Openssl 1.2.h 和 Chrome 51.0.2704.103
HTTP2 doesn't work on Nginx 1.10.1, Openssl 1.2.h and Chrome 51.0.2704.103
我使用编译安装的 openssl-1 生成 SSL 证书。2.h(但我使用 yum 安装了 openssl-devel)。这是我的 nginx(1.10.1) 配置。
服务器 {
字符集 utf-8;
听 443 ssl http2;
server_name 本地主机;
ssl on;
ssl_certificate /etc/ssl/certs/aa_2048.crt;
ssl_certificate_key /etc/ssl/certs/aa_2048.key;
#
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/private/aa_2048.dhparam;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
keepalive_timeout 70;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
...
}
我使用 chrome 51.0.2704.103 打开 link 但它使用 http/1.1 协议而不是我假设的 http/2.x。
那有什么问题呢?
这里是openssl和nginx的过程。 --> https://github.com/AarioAi/Conf/tree/aario/Dockerfiles 不是master分支,而是aario分支。
Here's the process of openssl and nginx.
您是使用 openssl 1.0.2h 编译 Nginx 还是仅使用它来生成证书 csr?
您能否编辑您的问题以添加 "nginx -V" 的输出?
猜测它是使用 openssl 1.0.1 编译的,Chrome 需要 openssl 1.0.2 或更高版本,因为它需要 ALPN (https://ma.ttias.be/day-google-chrome-disables-http2-nearly-everyone-may-31st-2016/)。
如果 HTTP/2 适用于其他浏览器(例如 Opera 或 Firefox),这就是原因。
我使用编译安装的 openssl-1 生成 SSL 证书。2.h(但我使用 yum 安装了 openssl-devel)。这是我的 nginx(1.10.1) 配置。 服务器 { 字符集 utf-8; 听 443 ssl http2; server_name 本地主机;
ssl on;
ssl_certificate /etc/ssl/certs/aa_2048.crt;
ssl_certificate_key /etc/ssl/certs/aa_2048.key;
#
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/private/aa_2048.dhparam;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
keepalive_timeout 70;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
...
}
我使用 chrome 51.0.2704.103 打开 link 但它使用 http/1.1 协议而不是我假设的 http/2.x。 那有什么问题呢?
这里是openssl和nginx的过程。 --> https://github.com/AarioAi/Conf/tree/aario/Dockerfiles 不是master分支,而是aario分支。
Here's the process of openssl and nginx.
您是使用 openssl 1.0.2h 编译 Nginx 还是仅使用它来生成证书 csr?
您能否编辑您的问题以添加 "nginx -V" 的输出?
猜测它是使用 openssl 1.0.1 编译的,Chrome 需要 openssl 1.0.2 或更高版本,因为它需要 ALPN (https://ma.ttias.be/day-google-chrome-disables-http2-nearly-everyone-may-31st-2016/)。
如果 HTTP/2 适用于其他浏览器(例如 Opera 或 Firefox),这就是原因。