撤銷/禁用 HTTP 嚴格傳輸安全
如何撤銷 HSTS 標頭資訊?
我有一個想要從 HTTPS 遷移到 HTTP 的網站。
我將 Apache2 重新配置為只提供 HTTP。不幸的是,Chrome 和 Firefox 仍然嘗試自動打開頁面的 HTTPS 版本。
我認為這是因為以前的配置似乎仍然有效。
<VirtualHost *:443> ... Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" ... </VirtualHost>
HSTS 標頭的思想是每個訪問頁面的客戶端都應該在本地儲存資訊“直到時間(
$$ now $$+$$ max-age $$秒),此站點應僅使用 HTTPS 訪問”。它旨在阻止試圖使客戶端使用未加密連接的中間人攻擊。 因此,任何伺服器端嘗試將客戶端重定向到過去具有未過期 HSTS 標頭的頁面的 HTTP 版本都可能向使用者產生可怕的警告消息。避免這種情況的唯一方法(除了等待指定的 HSTS 期限到期)是在使用 HSTS 標頭時從訪問過該站點的任何客戶端刪除儲存的 HSTS 資訊。
以下是適用於 Chrome 和 Firefox 的此過程的說明。
Chrome 使用說明
導航到:chrome://net-internals/#hsts
然後在“查詢域”框中鍵入您站點的完全限定名稱,點擊“查詢”按鈕並驗證 HSTS 資訊是否存在。然後在“刪除域安全策略”部分鍵入相同的名稱,然後點擊刪除。
火狐的使用說明
關閉所有打開的選項卡,然後打開完整的歷史記錄視窗(在 Windows/Linux 上按 Control-Shift-H,在 Mac 上按 Command-Shift-H,或從菜單欄中選擇歷史記錄 -> 顯示所有歷史記錄(如果可見))。找到該站點,右鍵點擊它並選擇“忘記此站點”。
如果您需要一種可以自動化的方法,您還可以在Firefox 未執行時編輯 Firefox 配置文件目錄中的 SiteSecurityServiceState.txt 文件。您使用的編輯器應該使用 Unix/Linux 風格的行尾。找到以開頭的行
<fully-qualified name of your site>:HSTS
並將其刪除。