HTTP2不适用于Nginx 1.10.1,Openssl 1.2.h和Chrome 51.0.2704.103

时间:2016-07-18 11:09:48

标签: ssl nginx configuration http2

我使用编译安装的openssl-1.2.h生成SSL证书(但我用yum安装openssl-devel)。这是我的nginx(1.10.1)配置。     服务器{     charset utf-8;     听443 ssl http2;     server_name localhost;

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打开链接,但它使用的是http / 1.1协议,而不是我所使用的http / 2.x. 那么它有什么问题呢?

这是openssl和nginx的过程。 - > https://github.com/AarioAi/Conf/tree/aario/Dockerfiles不是主分支,而是分支aario。

enter image description here

enter image description here

Here's the process of openssl and nginx.

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您是使用openssl 1.0.2h编译Nginx还是仅使用它来生成cert 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),那就是原因。