带有 OpenSSL 1.0.2 的最新 Nginx 仍然无法交付 http/2

Latest Nginx with OpenSSL 1.0.2 still won't deliver http/2

我有一台服务器 运行 Ubuntu 16.04 LTS,带有 Nginx 1.112,使用 OpenSSL 1.0.2h 构建,并根据许多 HTTP/2 支持验证工具,例如 this one,服务器已正确配置 HTTP/2 与 ALPN。然而在最新的 Chrome(51.0.2704.106(64 位))中,对服务器 returns 的请求使用协议 http/1.1 而不是 h2:

我在这里阅读了很多帖子,比如 this one 注意到使用 1.0.2 之前的 OpenSSL 版本构建的 Nginx 不支持 ALPN。但是我是运行1.0.2h.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:   xenial 

$ nginx -V
nginx version: nginx/1.11.2
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.1) 
built with OpenSSL 1.0.2h  3 May 2016
TLS SNI support enabled

$ openssl version
OpenSSL 1.0.2h  3 May 2016

Qualys SSL Labs 'SSL Server Test' 为域提供了 A+ SSL 评级。我使用 Let's Encrypt 通过引用的方法创建了证书 here.

难道还是Nginx证书配置问题?

非常感谢任何帮助。

之后,我发现这是一个本地问题。我的防病毒应用程序 Avast Mac Security 阻止了协议升级。禁用它,并使用 h2。

BazzaDP's answer on 是让我发现的原因: