Safari在localhost上强制执行HTTPS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Safari在localhost上强制执行HTTPS相关的知识,希望对你有一定的参考价值。

当我在Safari中加载http://localhost:3000时,Safari会自动重定向到https://localhost:3000。如何禁用此功能?

我进入~/Library/Cookies/HSTS.plist并删除了localhost条目,然后重新启动了Safari,但它只是将其重新添加到该plist文件并重定向到https。

任何想法如何解决这个问题,以便在localhost我必须明确说出http或https?

答案

我能够基于answer from Ask Different来解决这个问题。

简而言之,关闭Safari,然后运行下面的命令,就可以了。

sudo killall nsurlstoraged
rm -f ~/Library/Cookies/HSTS.plist
launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist

运行后重新启动Safari并尝试转到http://localhost:3000解决了问题,并没有重定向到https

希望这有助于某人解决这个问题。

另一答案

首先让我们确认它为什么要使用HTTPS。

在开发者工具中,它显示301或302重定向?

如果是这样,那么您的Web服务器就会说要转到HTTPS。修复您的Web服务器配置。

或者它是307重定向,表示HSTS?

说实话,我不确定Safari是否将其显示为307(假的内部重定向代表HSTS),所以它可能只是在没有显示这一点的情况下,但Chrome确实显示了这一点。

如果是这样,那么删除该文件并重新启动应该解决这个问题。但是,您是否可以确认HTTPS站点是否返回严格传输安全HTTP标头?如果是这样,那么它只会设置下次您碰巧转到HTTPS(包括您的页面是否通过HTTPS加载和映像)。你能删除那个标题吗?或者更好的是,使用max-age为0发布它,以便将其从HSTS浏览器缓存中删除,而不必弄清楚它所在的文件或Safari是否已将其从〜/ Library / Cookies / HSTS.plist中移除

以上是关于Safari在localhost上强制执行HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

如何强制显示移动 Safari 底部导航栏以编程方式显示?

使用 Safari 错误在 websockets 和 Tomcat 上强制使用 SSL

如何强制 Safari 重新绘制位置:滚动上的固定元素?

在一个控制器上强制执行 https,在另一个控制器上强制执行 http

尝试将 url 重定向到在 localhost 上运行的 iTunes 时的 Safari 警报

尝试在 POSTMAN 中获取一个主题 http://localhost:8080/topics?id=1。收到以下错误