Safari浏览器HSTS清除指南:修复HTTPS强制跳转

2026-05-31阅读 0热度 0
安全策略

做本地开发或接口调试时,常遇到一个诡异现象:访问 http://dev.test.local,Safari 浏览器却自作主张跳转到 https://dev.test.local,并显示“无法访问”。明明请求的是 HTTP,为何强制升级?

根因通常不在页面代码,而在于 Safari 底层的 HSTS(HTTP Strict Transport Security) 机制。一旦某域名曾返回 Strict-Transport-Security 响应头,Safari 会将其持久化到内核级存储,独立于 Cookie 或网页缓存。此后所有对该域名的请求都会被强制升级为 HTTPS。

针对不同场景,有三种清理策略:全局数据库删除、单个域名精确清除、全量历史数据重置。操作得当,几分钟内即可恢复 HTTP 访问。

使用终端清除全局 HSTS 数据库(macOS 专有)

该方法直接删除 Safari 存储所有 HSTS 策略的 plist 文件。所有被记录域名将立即丧失强制 HTTPS 能力,尤其适合开发调试中需要快速降级连通。

操作前必须完全退出 Safari,否则 HSTS.plist 文件会被锁定导致删除失败。建议通过“活动监视器”确认无残留 Safari 进程,若有则强制结束。

打开“终端”,执行以下命令:

sudo rm -f ~/Library/Cookies/HSTS.plist

输入管理员密码(屏幕无回显),回车执行。成功后重启 Safari,访问 http://dev.test.local 验证。若仍跳转,该域名可能被列入浏览器预加载列表,需采用下面方法。

精准清除单个网站的 HSTS 及本地数据(macOS/iOS 通用)

若只想修复特定测试站点而不影响其他域名,此方法最合适。无需终端,不干扰其他网站缓存。

该方法会清除目标域名的 HSTS 记录、Cookie、localStorage、Service Worker 等所有本地数据。操作后,该域名在 Safari 中如同初次访问。

macOS 操作路径:
Safari 菜单栏 → 设置 → 隐私 → 点击“管理网站数据…” → 在搜索框输入 dev.test.local(注意不带协议前缀)→ 找到条目后点击“移除”。

iOS/iPadOS 操作路径:
设置 → Safari → 高级 → “网站数据” → 搜索 dev.test.local → 点击“编辑” → 选中条目 → 点击“删除”。

全量清空历史与网站数据(兜底重置)

当多个子域(如 api.dev.test.localadmin.dev.test.local)同时异常,或无法确定哪个域名触发了 HSTS,采用这个终极方案。它会一并清除所有域名的 HSTS 缓存、浏览历史、自动填充、Cookie 和本地存储,一步到位。

macOS 操作路径:
Safari 菜单栏 → 历史记录 → 清除历史记录… → 时间范围选择“所有历史记录” → 勾选“Cookie 与网站数据” → 点击“清除历史记录”。

iOS/iPadOS 操作路径:
设置 → Safari → 滚动至底部 → 点击红色字体的“清除历史记录与网站数据” → 再次确认。

执行后立即生效,无需重启 Safari。注意:所有已登录网站将退出,需重新验证身份。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策