openssl 的問題其實是因為 Chrome v51 之後已經拔掉了 NPN (Next Protocol Negotiation) ,必須 改用 ALPN(Application-Layer Protocol Negotiation),而 ALPN 的支援是在 openssl v1.0.2+ 的版本開始…

Peter Dave Hello August 23, 2016 at 1:13 am
補充一下我認知不一樣的地方,有錯歡迎指正

1. http/2.0 標準最終沒有要求 https,而是目前的瀏覽器實做都要求 https,所以才會變成現在的 http/2.0 都需要跑 https ,這可能跟當初 SPDY 是強制要求 https 有關,畢竟大部分的 http/2.0 規格都是從 spdy 演變來的,一方面是為了安全,一方面可能是降低成本直接參考拿 spdy 的實做來修改。

2. 關於 http/2.0 的內建支援,nginx 應該是從 v1.9.5 就開始了(https://www.peterdavehello.org/2015/09/nginx-now-supports-http2-0/) (mod_h2 則是 Apache v2.4.17 後內建)

3. openssl 的問題其實是因為 Chrome v51 之後已經拔掉了 NPN (Next Protocol Negotiation) ,必須 改用 ALPN(Application-Layer Protocol Negotiation),而 ALPN 的支援是在 openssl v1.0.2+ 的版本開始的,其實不需要到 v1.0.2g,另外就是 Firefox 目前都還是支援 NPN ,使用 openssl v1.0.1 編譯出來的 nginx 仍然是支援 http/2.0 的,只是因為沒有 ALPN 的關係,Chrome v51 之後的版本就沒辦法使用 http/2.0 了

(本文 crossposting 於 ALPHACamp Blog) 如果說有一項技術可以讓你的網站瀏覽起來更快、更安全、SEO 加分,而且網站工程師不需要改 code 就可以全站使用。更重要的是,還不用額外花錢,天底下有這麼好的事情嗎? 話說 HTTP 通訊協定是全球資訊網(WWW)的基礎,是瀏覽器和網站伺服器之間的通訊協定。而 HTTP/2 是 HTTP/1.1 從 1999 年發布以來…

來源: 更快更安全: 每個網站都應該升級到 HTTP/2 | ihower { blogging }