怎麼在Chrome和Firefox瀏覽器中清除HSTS設置?

HSTS代表的是HTTPS嚴格傳輸安全協議,它是一個網絡安全政策機制,能夠強迫瀏覽器只通過安全的HTTPS連接(永遠不能通過HTTP)與網站交互。這能夠幫助防止協議降級***和cookie劫持。

HSTS最初是爲了響應Moxie Marlinspike在2009 BlackHat Federal(2009年黑帽安全大會)上進行的題爲“實踐中擊敗SSL的新技巧”的演講中所提出的一個漏洞而創建的。HSTS所防禦的特定漏洞就是利用的是Marlinspike發佈的一款叫做SSLStrip的工具。

本質上,這個工具是通過將安全的HTTPS連接轉換回不安全的HTTP連接來工作的。通過告知瀏覽器應當使用HTTPS連接,HSTS能夠修復這一問題。HSTS還能幫助避免Firesheep等常見工具竊取基於cookie的登錄憑證。

不幸的是,部分HSTS設置可能會不經意地造成瀏覽器錯誤。例如,如果你使用的是Chrome,你可能就會遇到:

“隱私錯誤:你的連接不是私人的”(NET::ERR_CERT_AUTHORITY_INVALID)。

如果你試圖進入另一個瀏覽器上的同一個站點,並且不會遇到相同的問題,那麼HSTS設置對你的原始瀏覽器所造成的影響可能就會是一個問題。在這種情況下,你將需要清除它們。以下是在谷歌Chrome和Mozilla Firefox上清除它們的具體方法。
清除和忘記流行的瀏覽器中的HSTS設置。

如果你的瀏覽器已經爲域名存儲了HSTS設置,而你之後又試圖通過HTTP或斷開的HTTPS連接(錯配的主機名,過期的證書等)進行連接,你就會收到一個錯誤。不同於其他的HTTPS錯誤,與HSTS有關的錯誤是不能忽視的。這是因爲瀏覽器已經收到了明確的指示,表示除了安全的連接,不允許其他任何情況。

HSTS設置包括了一個“內容能夠被緩存的時間”選項,它會告訴瀏覽器在再次進行檢查之前會緩存和記住設置多久。爲了立即處理完成這個錯誤,你將需要在你的瀏覽器上刪除這個域名的本地HSTS設置。具體操作步驟將在下文做介紹。

這些設置需要在每個瀏覽器中進行清除。作爲一名開發人員,如果你正在測試HSTS配置,你可能就會遇到這一錯誤。在Chrome中,你可能會在本地主機上接收到這一錯誤。如果你在實際的網站上爲終端用戶部署了HSTS,那麼根據你的受衆的多少,糾正它們當前所擁有的錯誤可能就是可行的。每個用戶需要刪除其本地HSTS設置,或者根據之前設置的‘內容能夠被緩存的時間’等待它們過期。

同樣需要注意的是,如果網站仍在提供HSTS標頭,一旦你再次訪問這個網站,你的瀏覽器就會存儲它。因此如果你不希望再次發生這一錯誤,你就必須首先停止發送該標頭。

Chrome和Firefox都沒有用於HSTS錯誤的獨特的錯誤代碼,但間隙錯誤頁面將包含關於HSTS的信息。
刪除HSTS設置

請注意,這些說明主要對正在測試HSTS和現在需要刪除設置的開發人員有用。對於那些你不能控制的網站,如果這些網站仍在提供HSTS標頭,那麼刪除瀏覽器的本地HSTS設置就是沒有幫助的,因爲你的瀏覽器將會在每次訪問/刷新後再次保存設置。

在Chrome中,你可能會看到錯誤“NET::ERR_CERT_COMMON_NAME_INVALID。”如果你點擊Chrome中的高級(Advanced)選項,錯誤信息就將包括“您現在無法訪問domain.com,因爲該網站使用了HSTS。”這將能夠確認錯誤是與HSTS有關的。在本地主機上,你可能會看到錯誤“該網站無法提供安全的連接。”

在Firefox中,間隙頁面將會顯示:“該網站使用了HTTP嚴格傳輸安全(HSTS)協議來指定Firefox只能通過安全的方式來連接它。因此,爲該證書添加一個例外是不可能的。”

如果你已經確定錯誤是由於緩存的HSTS設置所造成的,請遵照以下說明來解決這一錯誤:
如何刪除Chrome中的HSTS設置:

  1. 導航到chrome://net-internals/#hsts

這是Chrome用來管理你的瀏覽器的本地HSTS設置的UI。

  1. 首先,爲了確認Chrome記錄了域名的HSTS設置,請在頁面底部的查詢域名部分輸入主機名。點擊查詢。如果查詢框返回已找到,且同時設置信息列舉在了下面,那麼域名的HSTS設置就保存在了你的瀏覽器中。

請注意,這是一個非常敏感的搜索。請只輸入主機名,比如www.example.com或example.com,不要輸入任何相關的協議或路徑。

  1. 在刪除域名部分中輸入相同的主機名並點擊

你的瀏覽器將不再強迫這個網站進行HTTPS連接!你可以通過刷新或導航到頁面來測試它是否能夠正常工作。

請注意,根據網站所提供的HSTS設置,你可能需要指定恰當的子域名。例如,staging.yoursite.com的HSTS設置可能需要與yoursite.com區分開來,因此視情況而定,你可能需要重複這些步驟。
如何刪除Firefox中的HSTS設置:

我們將講述兩種不同的刪除Firefox中的HSTS設置的方式。第一種方式應當可以適用於大多數情況——但如果有需要,我們也包括了一個手動選項。

  1. 關閉Firefox中所有打開的標籤。

  2. 利用鍵盤快捷鍵Ctrl + Shift + H(Mac上爲Cmd + Shift + H)打開完整的歷史窗口。在以下步驟中,你必須使用到這一窗口或側邊欄。

  3. 找到你想要爲之刪除HSTS設置的網站——如果需要,你可以在右上角搜索該網站。

  4. 從項目列表中右鍵點擊該網站,並點擊忘記這個網站。這將會清除這個域名的HSTS設置(以及其他緩存數據)。

  5. 重啓Firefox並訪問該網站。你現在應當能夠通過HTTP/中斷的HTTPS訪問這一網站了。如果這些說明行不通,那麼你可以嘗試以下手動方式:

針對Firefox的手動方式

如果上述步驟行不通,你可以嘗試以下方式。

首先,通過你的操作系統的文件資源管理器來定位你的Firefox配置文件。你可以通過導航到about:support來找到Firefox的這一文件夾。

向下滾動到頁面中部,在應用程序基本要素部分,你將看到配置文件夾。點擊打開文件夾。

現在關閉Firefox,因此瀏覽器便不會覆蓋我們將要進行修改的任何設置。

在你的配置文件夾中,找到並打開文件SiteSecurityServiceState.txt。該文件包含了你之前訪問的域名的HSTS和HPKP(Key Pinning,一種獨立的HTTPS機制)緩存設置。這些設置可能會有點雜亂無章。

搜索你想要爲之清除HSTS設置的域名,並將它從文件中刪除。每個條目都有域名。刪除從想要的域名開始到下一個列出的域名中的所有的條目。還有一種方法,你可以將現有文件從a .txt重命名爲a .bak(爲了保存現有的文件,以防萬一)並允許Firefox在下次啓動時創建一個全新的文件。

以下是一個簡單的HSTS列表示例。

www.thesslstore.com:HSTS 0 17312 1527362896190,1,0

正如前面所提到的,這一文件的格式可能會很混亂。以下是我的配置中的一個示例。每個域名的設置都以獨特的顏色顯示了出來,以清楚地區分開來。在這種情況下,之前域名的部分設置在開頭會顯示爲紅色:
原文鏈接:http://www.wosign.com/FAQ/faq_2018111401.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章