答案是:hsts策略已固化导致强制跳转,需删除~/library/cookies/hsts.plist文件或通过“管理网站数据”精准清除单个域名记录。该跳转发生在浏览器网络栈最底层,不发任何http请求,network面板为空,区别于服务器301重定向。

当你在Safari中输入http://admin.dev却瞬间跳转到https://admin.dev并报错“连接已重置”,而Network面板空无一物,说明HSTS策略已在本地固化,必须通过系统级干预启用真正的强制HTTPS安全浏览模式。
确认HSTS是否已生效
在Safari地址栏输入http://your-domain.com → 观察URL变化:若未发起任何网络请求就自动变成https://,且开发者工具Network标签页完全空白,即可确定是HSTS缓存拦截,而非服务器301重定向。
服务器301会在Network中显示状态码;HSTS跳转发生在浏览器网络栈最底层,不发包、不可调试。
彻底清除全局HSTS策略(根治法)
第一步:完全退出Safari —— 打开“活动监视器”,搜索Safari,确认无残留进程;若存在,选中 → 点击顶部“X”强制退出。
第二步:打开“终端”应用,粘贴并执行以下命令:
sudo rm -f ~/Library/Cookies/HSTS.plist
第三步:输入当前用户管理员密码(输入过程无任何字符反馈,属正常现象),按回车。【此操作不可逆,删除后所有曾被记录的域名都将失去强制HTTPS保护】
第四步:重新启动Safari,再次访问http://your-domain.com测试是否仍跳转。
精准清除单个域名HSTS记录
方法一:管理网站数据
在macOS上:Safari → 设置 → 隐私 → 点击“管理网站数据…”;在iOS上:设置 → Safari 浏览器 → 高级 → 网站数据。
在搜索框中输入目标域名,例如api.test.local(注意:不要带http://或https://)。
找到对应条目后,确认其“最后访问时间”与你最近一次访问该站点的时间吻合——这能避免误删其他正常网站的数据。
点击右侧“移除”按钮;如果该域名有多个子域(如www.test.local和api.test.local),按住 Command 键(macOS)或多点选中(iOS)后选择“全部移除”。
启用HSTS响应头实现服务端强制
仅当你是网站管理员时适用。在Web服务器配置中添加Strict-Transport-Security响应头:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
max-age=31536000表示一年内浏览器必须强制使用HTTPS;includeSubDomains确保所有子域名生效;preload参数是提交至浏览器预加载列表的必要条件。
注意:若未满足HSTS Preload List准入要求(如max-age不足18周、未启用全站HTTPS、缺失includeSubDomains),手动添加preload会导致浏览器拒绝接受该头。











