首页 文章

Google Chrome将localhost重定向到https

提问于
浏览
262

当我使用Chrome调试Visual Studio项目时,浏览器会尝试重定向到我的网址的https等效项 . 我没有在Web项目中启用SSL,并且起始URL是http URL . 当我使用FireFox或IE调试时,我没有这个问题 .

我确实重新安装了Chrome,它解决了一天的问题 . 没有下载任何插件,第二天就会再次出现问题 .

是什么让Chrome将localhost重定向到https?

网络检查显示:请求URL:数据:text / html,chromewebdata请求 Headers 临时 Headers 显示用户代理:Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 36.0.1985.143 Safari / 537.36

这些选项卡中没有预览和响应数据 .

20 回答

  • 232

    我面临同样的问题,但仅在 Chrome Canary 并搜索我找到的解决方案this post .

    Chrome的下一个版本之一将强制所有以.dev(和.foo)结尾的域通过预加载的HTTP严格传输安全性(HSTS)标头重定向到HTTP .

    { "name": "dev", "include_subdomains": true, "mode": "force-https" },
    { "name": "foo", "include_subdomains": true, "mode": "force-https" },
    

    因此,请更改您的域名 .

  • 32

    另一种选择是使用像https://github.com/rchampourlier/tunnelss这样的东西

    当然它添加了另一个依赖/设置,但它也允许在dev中测试https,这可能很好 .

    我使用RVM然而得到隧道工作我必须使用 sudo gem install tunnelsssudo tunnelss

  • 1

    这可能是由缓存的https重定向引起的,可以通过手动清除缓存来修复,如Adiyat Mubarak的答案 .

    但是,如果您正在访问localhost,您可能是开发人员,在这种情况下,您会发现缓存清除铬扩展名,例如"classic cache killer"(请参阅例如https://chrome.google.com/webstore/search/classic%20cache%20killer?hl=en)在各种情况下都很有用,并且可能已经安装了一个 .

    因此,快速解决方法是:安装缓存杀手(如果您还没有缓存杀手),打开它,然后重新加载页面 . 完成!

  • 5

    Chrome 63通过预加载的HSTS强制.dev域自动转换为HTTPS .
    快速修复:只需将.dev域名更改为.localhost即可 .

  • 6

    对于像我这样懒惰的人来说,这是一个懒惰而快速的解决方案(在Chrome 67中工作) .

    只需使用"Incognito Window"选项(CTRL SHIFT N)在 Stealth Mode 中启动另一个Chrome窗口即可 . 无需删除缓存,无需深入了解Chrome设置等 .

  • 171

    对于遇到同样问题的人,我通过按CTRL SHIFT DELETE来删除整个浏览器缓存 . 现在我可以通过HTTP协议访问我的localhost网站了 .

  • 0

    来自https://galaxyinternet.us/google-chrome-redirects-localhost-to-https-fix/

    没有任何选项修复对我有用,为了修复 https://localhost:3000 ,这样做了 .

    单击并按住 Reload 按钮并选择 Empty Cache and Hard Reload ,这似乎只是 localhost 上的一个选项

  • -2

    转到Chrome中的设置,然后转到高级设置,在隐私和安全部分下单击清除浏览数据,然后清除所有数据 . 我按照这些步骤操作,它对我有用 . 希望它有所帮助 .

  • 17

    @Adiyat Mubarak回答对我不起作用 . 当我尝试清除缓存并进行硬重新加载时,页面仍然重定向到https .

    我的解决方案:在网址栏的右上角(收藏夹星形图标的左侧)有一个带有“x”的图标 . 右键单击它,它会说“不安全的脚本”,然后有一个选项来加载它们 . 去做 .

  • 8

    Chrome 63(自2017年12月起)将强制所有以.dev(和.foo)结尾的域通过预加载的HTTP严格传输安全(HSTS)标头重定向到HTTPS . You can find more information about this here.

  • 47

    我相信这是由HSTS引起的 - 见http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

    如果你有(开发)任何其他本地主机站点发送HSTS标头...

    例如 . 严格运输安全:max-age = 31536000; includeSubDomains;预紧

    ...然后,根据max-age的值,将需要通过HTTPS提供对localhost的未来请求 .

    为了解决这个问题,我做了以下几点 .

    • 在Chrome地址栏中输入"chrome://net-internals/#hsts"

    • 在页面的最底部是QUERY域文本框 - 验证浏览器是否知道localhost . If it says "Not found" then this is not the answer you are looking for.

    • 如果是,请使用上面的文本框删除localhost域

    • 您的站点现在应该使用普通的旧HTTP

    这不是一个永久的解决方案,但至少会让它在项目之间运作 . 如果有人知道如何从HSTS列表中永久排除localhost,请告诉我:)

    UPDATE - November 2017

    Chrome最近已将此设置移至 Delete domain security policies

    enter image description here

    UPDATE - December 2017 如果您使用.dev域名,请参阅下面的其他答案,因为Chrome(和其他人)通过预加载的HSTS强制HTTPS .

  • 5

    新发展! (如果你有Chrome 63)

    如果您的localhost域名是 .dev ,那么我认为以前接受和工作的答案不再适用 . 这是因为Chrome 63 Chrome将通过预加载的HSTS强制.dev域到HTTPS .

    这意味着, .dev 基本上根本不会工作,除非你有正确的签名SSL证书 - 不再允许自签名证书! Learn more at this blog post.

    所以现在修复此问题并避免将来再次发生这种情况 .test 是一个推荐的域,因为IETF保留了它用于测试/开发目的 . 您还应该能够将 .localhost 用于本地开发 .

  • 1

    我在Chrome中遇到了同样的问题,但我尝试使用BigJump's solution失败了 .

    我通过强制进行硬刷新修复了我的问题,如blog所示(最初来自此SuperUser answer) .

    确保您的地址栏使用http方案,然后执行这些步骤,可能需要几次:

    • 打开“开发人员工具”面板(CTRL SHIFT I)

    • 单击并按住重新加载图标/右键单击重新加载图标 .

    • 菜单将打开 .

    • 从此菜单中选择第3个选项("Empty Cache and Hard Reload")

  • 0

    这些都不适合我 . 它是在带有本地URL的chrome更新(版本63.0.3239.84,linux)之后开始发生的 . 无论如何,总是会重定向到https . 失去了几个小时,对此充满了耐心

    究竟起了什么才能改变领域 .

    值得一提的是,域名是.app . 也许它有事可做?并将其更改为.test并且chrome停止重定向

  • -1

    我也一直在努力解决这个问题 . 似乎HSTS仅适用于域名 . 因此,如果您在本地计算机上进行开发,则使用IP地址会更容易 . 所以我从localhost切换到127.0.0.1

  • -1

    这不是一个解决方案,它只是一种解决方法 .

    • 单击解决方案资源管理器中的visual studio项目(顶级),然后转到属性窗口 .

    • 更改SSL已启用为true . 您现在将在属性窗口中看到另一个端口号为“SSL URL” .

    • 现在,当您运行应用程序(或在浏览器中查看)时,您必须手动将端口号更改为地址栏中的SSL端口号 .

    现在它作为SSL链接正常工作

  • 5

    这是今天最快的解决方案(17-3-2018):

    关闭所有Chrome标签/窗口并在您的命令行上运行:(或将其添加为短代码)

    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors
    
  • 404

    在我的情况下,我将我的项目路径设置为 /Users/me/dev/project_root/ 并从那里运行 nodeJS / express 服务器 . 将我的路径重命名为 /Users/me/project_root (从项目路径中删除 dev )解决了该问题 .

    最有可能与这项新规定有关:

    Chrome 63(自2017年12月起),将强制所有以.dev(和.foo)结尾的域通过预加载的HTTP严格传输安全(HSTS)标头重定向到HTTPS .

    您可以找到有关此here的更多信息 .

    使用:

    • 谷歌浏览器版本70.0.3538.110(官方版)(64位)

    • nodeJS v9.2.0

  • 0

    捎带Adiyat Mubarak

    无法刷新,因为它只是在https上刷新 . 遵循一些相同的步骤 .

    1. Open chrome developer tools (ctrl + shift + i)
    2. Network Tab at the top
    3. Click Disable cache checkbox at the top (right under network tab for me).
    4. Refresh page (while the developer tools is still open)
    
  • 0

    我从来没有想出问题的根源,但我能够解决这个问题 . 我删除了解决此问题的Google Chrome应用缓存文件夹 .

    C:\用户[用户] \应用程序数据\本地\谷歌\ Chrome浏览器

相关问题