perché il browser Chrome non riconosce il mio server http2?

Ho configurato il mio conf Nginx come da carta digitale Ocean , e ora http2 è disponibile …

Ma nello strumento Dev (versione 54.0.2840.98 (64-bit)) di Chrome, è sempre su HTTP 1/1:

NAME METHOD STATUS PROTOCOL shell.js?v=xx.. GET 200 http/1/1 

il mio server esegue Ubuntu 16.04 LTS che supporta sia ALPN che NPN e la versione di openssl fornita con esso è 1.0.2g

Ho controllato il supporto http2 con questo sito di strumenti e il risultato è:

 Yeah! example.com supports HTTP/2.0. ALPN supported... 

Anche il controllo con arricciatura è OK

  $ curl -I --http2 https://www.example.com HTTP/2 200 server: nginx/1.10.0 (Ubuntu) date: Tue, 13 Dec 2016 15:59:13 GMT content-type: text/html; charset=utf-8 content-length: 5603 x-powered-by: Express cache-control: public, max-age=0 etag: W/"15e3-EUyjnNnyevoQO+tRlVVZxg" vary: Accept-Encoding strict-transport-security: max-age=63072000; includeSubdomains x-frame-options: DENY x-content-type-options: nosniff 

Ho anche controllato con is-http2 cli dalla mia console

 is-http2 www.amazon.com × HTTP/2 not supported by www.amazon.com Supported protocols: http/1.1 is-http2 www.example.com ✓ HTTP/2 supported by www.example.com Supported protocols: h2 http/1.1 

perché Chrome è lasciato alle spalle? Come posso controllarlo anche con Safari (v 10.0.1)

Probabilmente sarà una delle due ragioni:

  1. Stai usando un software anti-virus ed è il tuo traffico MITM e quindi ti stai declassando su HTTP / 1.1. Distriggers il monitoraggio del traffico https sul tuo AV per collegarti direttamente al server. Puoi verificare se questo è il caso utilizzando uno strumento online per testare il tuo sito per il supporto HTTP / 2 .

  2. Stai utilizzando crittografi TLS meno recenti e in particolare uno che Chrome non consente HTTP / 2 ( https://http2.github.io/http2-spec/#BadCipherSuites ) come indicato nella Fase 5 della guida precedente. Scansiona il tuo sito utilizzando https://www.ssllabs.com/ssltest/ per verificare la configurazione di TLS e migliorarla.

La terza ragione è la mancanza del supporto ALPN nella tua libreria SSL / TLS (cioè stai usando openssl 1.0.1 e devi essere uno 1.0.2 o successivo, per esempio) ma hai già confermato che hai il supporto ALPN così saltando quello per questa risposta