Safari在localhost上强制执行HTTPS

时间:2017-09-24 20:44:28

标签: http https safari hsts

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

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

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

5 个答案:

答案 0 :(得分:27)

我能够根据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

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

答案 1 :(得分:8)

在Safari 13.0.5中,删除localhost的网站数据( Safari>首选项>隐私>管理网站数据... )解决了该问题。

Safari > Preferences > Privacy Manage Website Data...

答案 2 :(得分:1)

你可以试试

deleting website data for localhost (Safari > Preferences > Privacy > Manage Website Data...)

之后关闭浏览器并尝试。

如果不能,您可以尝试在为 localhost 返回端口 80 之后创建不同的端口 80

答案 3 :(得分:-2)

可以改用http://127.0.0.1:3000。或您的本地计算机名称。 例如:http://andis-mac-5.local:3000

您可以从系统偏好设置-共享-编辑确定

enter image description here

答案 4 :(得分:-3)

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

在开发人员工具中是显示301或302重定向吗?

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

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

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

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