Linux中國

作為 HTTPS 的骨灰粉,怎麼可以不加入 HSTS 預載入列表

HSTS 預載入列表

但是,這就夠了么?如果一個用戶從來沒有以 HTTPS 方式訪問過我們的網站呢,那顯然就沒有機會得到 HSTS 響應頭,從而還是有可能以 HTTP 的方式進行首次訪問——雖然我們已經做了很多自動和強制的引導,但是總還稍有缺憾?

所以,追求完美人們,又提出了一個 HSTS 預載入列表 preload list (友情提示,請自備梯子)。

谷歌在瀏覽器安全方面總是走在前面,因此它維護了一個預載入列表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 響應頭,然後提交了申請。

今天晚上突然心血來潮,想著看看是否批准下來了:

linux.cn 列入 HSTS 預載入列表了

哈哈,通過了!

然後馬上去 Chrome 裡面查詢——沒有……好吧,我用的是穩定版的 Chrome。去下載 canary 通道的 Chrome 看看。安裝後馬上查詢一下:

列入了靜態 STS 域名了

果然列入了 canary 通道的 Chrome 裡面!第一次在這個新開封的瀏覽器裡面訪問 linux.cn,馬上就變成綠色的 https://linux.cn

綠色的 HTTPS 圖標

去查詢一下 Chrome 的代碼看看:

列入了 transport_security_state_static.json

從現在的數據看,列表中總共才 4630 個域名,其中 .cn 的才 8 個。怎麼樣,你要不要也加入進來?


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國