![撤销/禁用 HTTP 严格传输安全](https://linux22.com/image/715696/%E6%92%A4%E9%94%80%2F%E7%A6%81%E7%94%A8%20HTTP%20%E4%B8%A5%E6%A0%BC%E4%BC%A0%E8%BE%93%E5%AE%89%E5%85%A8.png)
如何撤销 HSTS 标头信息?
我有一个网站,想从 HTTPS 迁移到 HTTP。
我重新配置了 Apache2,使其仅提供 HTTP 服务。不幸的是,Chrome 和 Firefox 仍然会自动尝试打开 HTTPS 版本的页面。
我认为这是因为之前的配置似乎仍然有效。
<VirtualHost *:443>
...
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
...
</VirtualHost>
答案1
HSTS 标头的理念是,每个访问页面的客户端都应在本地存储以下信息:“直到时间 ([now]+[max-age] 秒),此网站应仅使用 HTTPS 访问”。其目的是阻止试图让客户端使用未加密连接的中间人攻击。
因此,任何服务器端尝试将客户端重定向到曾经具有未过期 HSTS 标头的 HTTP 版本页面的行为都可能向用户产生可怕的警告消息。避免这种情况的唯一方法(除了等待指定的 HSTS 期限到期)是从使用 HSTS 标头期间访问过该网站的任何客户端中删除存储的 HSTS 信息。
以下是针对 Chrome 和 Firefox 的此过程的说明。
Chrome 说明
导航至:chrome://net-internals/#hsts
然后在“查询域”框中输入您网站的完全限定名称,点击查询按钮并验证 HSTS 信息是否存在。然后在“删除域安全策略”部分中输入相同的名称并点击删除。
Firefox 说明
关闭所有打开的标签,然后打开完整历史记录窗口(在 Windows/Linux 上按 Control-Shift-H,在 Mac 上按 Command-Shift-H,或者从菜单栏中选择历史记录 -> 显示所有历史记录(如果可见)。找到该网站,右键单击它并选择忘记此网站。
如果你需要一种可以自动化的方法,你也可以编辑 Firefox 配置文件目录中的 SiteSecurityServiceState.txt 文件当 Firefox 未运行时。您使用的编辑器应使用 Unix/Linux 样式的行尾。找到以 开头的行<fully-qualified name of your site>:HSTS
并将其删除。