作為 HTTPS 的骨灰粉,怎麼可以不加入 HSTS 預載入列表
HSTS 預載入列表
但是,這就夠了么?如果一個用戶從來沒有以 HTTPS 方式訪問過我們的網站呢,那顯然就沒有機會得到 HSTS 響應頭,從而還是有可能以 HTTP 的方式進行首次訪問——雖然我們已經做了很多自動和強制的引導,但是總還稍有缺憾?
所以,追求完美人們,又提出了一個 HSTS 預載入列表 (友情提示,請自備梯子)。
谷歌在瀏覽器安全方面總是走在前面,因此它維護了一個預載入列表給 Chrome 使用,這個列表會硬編碼到 Chrome 瀏覽器中。後來,Firefox、Safari、 IE 11 和 Edge 一想,得了,咱也別自己弄一個了,都採用這個列表吧。所以,各大瀏覽器都支持同一個列表了。
如果要想把自己的域名加進這個列表,需要滿足以下條件:
- 有效的證書(如果使用 SHA-1 證書,必須是 2016 年前就會過期的);
- 將所有 HTTP 流量重定向到 HTTPS;
- 確保所有子域名都啟用了 HTTPS,特別是 www 子域;
- 輸出 HSTS 響應頭:
- max-age 至少需要 18 周(10886400 秒),其實在 ssllabs 的測試裡面建議更長一些;
- 必須指定 includeSubdomains 參數;
- 必須指定 preload 參數;
HSTS 響應頭範例:
Strict-Transport-Security: max-age=10886400; includeSubDomains; preload
注意,提交的申請並不是自動處理的,人工處理也許需要一周到幾周,你可以在這個表單提交查詢看看是否列入了。或者在你的 Chrome 瀏覽器中訪問 chrome://net-internals/#hsts 查詢是否列入。一般來說,即便你已經列入到這個列表,但是依舊需要幾個月才能逐漸從 Chrome 的 canary 更新通道更新到 dev 、beta 等通道,直到最後的 stable 通道。
鄭重警示:如果你並不能確定你的網站從此以後一直使用 HTTPS,那還是不要加入的好。因為,加入後很難撤銷,你可以要求撤銷,但是這個數據重新更新到穩定版的 Chrome 同樣需要幾個月,而別的瀏覽器是如何處理這個撤銷數據的,則無法保證。
換句話說,只有 HTTPS 骨灰粉才應該考慮加入。
我們就是 HTTPS 骨灰粉!
任性的站長當然是 HTTPS 骨灰粉了,雖然「一入宮門深似海」,將來 HTTPS 會不會和 L2TP、PPTP 一樣被限制也未可知,但是這麼有 BIG 的事情怎麼可以不做呢?
上個月15號,我修改了符合申請條件的 HTST 響應頭,然後提交了申請。
今天晚上突然心血來潮,想著看看是否批准下來了:
哈哈,通過了!
然後馬上去 Chrome 裡面查詢——沒有……好吧,我用的是穩定版的 Chrome。去下載 canary 通道的 Chrome 看看。安裝後馬上查詢一下:
果然列入了 canary 通道的 Chrome 裡面!第一次在這個新開封的瀏覽器裡面訪問 linux.cn,馬上就變成綠色的 https://linux.cn !
去查詢一下 Chrome 的代碼看看:
從現在的數據看,列表中總共才 4630 個域名,其中 .cn 的才 8 個。怎麼樣,你要不要也加入進來?
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive