当我使用Chrome调试Visual Studio项目时,浏览器会尝试重定向到我的网址的https等效项。我没有在Web项目中启用SSL,并且起始URL是http URL。当我使用FireFox或IE进行调试时,我没有这个问题。
我重新安装了Chrome,修复了一天的问题。没有下载任何插件,第二天就会再次发生问题。
什么让Chrome将localhost重定向到https?
网络检查显示: 请求URL:data:text / html,chromewebdata 请求标题 显示临时标题 User-Agent:Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 36.0.1985.143 Safari / 537.36
这些标签中没有预览和响应数据。
答案 0 :(得分:476)
我认为这是由HSTS引起的 - 请参阅http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
如果您(已开发)任何其他发送HSTS标头的本地主机站点......
例如。严格运输安全:max-age = 31536000; includeSubDomains;预加载
...然后根据max-age的值,将需要通过HTTPS提供对localhost的未来请求。
为了解决这个问题,我做了以下几点。
这不是一个永久的解决方案,但至少会让它在项目之间运作。如果有人知道如何从HSTS列表中永久排除localhost,请告诉我:)
更新 - 2017年11月
Chrome最近将此设置移至删除域安全政策
更新 - 2017年12月 如果您使用.dev域名,请参阅下面的其他答案,因为Chrome(和其他人)通过预加载的HSTS强制使用HTTPS。
答案 1 :(得分:268)
我在Chrome中遇到了同样的问题,但我尝试使用BigJump's solution失败了。
我通过强制进行硬刷新修复了我的问题,如blog所示(最初来自此SuperUser answer)。
确保您的地址栏使用http方案,然后执行这些步骤,可能需要几次:
答案 2 :(得分:180)
新发展! (如果你有Chrome 63 +)
如果您的localhost域名为.dev
,那么我认为之前已接受且无效的答案不再适用。这是因为Chrome 63 Chrome将通过预加载的HSTS强制.dev域到HTTPS。
这意味着,.dev
基本上根本不会起作用,除非你有正确的签名SSL证书 - 不再允许自签名证书! Learn more at this blog post.
因此,现在要解决此问题并避免将来再次发生此问题.test
是一个推荐的域,因为IETF保留了它用于测试/开发目的。您还应该能够将.localhost
用于本地开发。
答案 3 :(得分:47)
我遇到同样的问题,但仅限于 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" },
因此,请更改您的域名。
答案 4 :(得分:43)
无法刷新,因为它只是在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)
答案 5 :(得分:18)
Chrome 63(自2017年12月起)将强制所有以.dev(和.foo)结尾的域通过预加载的HTTP严格传输安全(HSTS)标头重定向到HTTPS。 You can find more information about this here.
答案 6 :(得分:10)
来自https://galaxyinternet.us/google-chrome-redirects-localhost-to-https-fix/
没有任何选项修复对我有用,对于修复https://localhost:3000
,这样做了。
点击并按住Reload
按钮并选择Empty Cache and Hard Reload
,这似乎只是localhost
上的一个选项
答案 7 :(得分:7)
打开Chrome Developer Tools
->转到Network
->选择Disable Cache
->重新加载
答案 8 :(得分:6)
我也一直在努力解决这个问题。似乎HSTS仅适用于域名。因此,如果您在本地计算机上进行开发,则使用IP地址会更容易。所以我从localhost切换到127.0.0.1
答案 9 :(得分:6)
这可能是由缓存的https重定向引起的,可以通过手动清除缓存来修复,就像在Adiyat Mubarak的回答中一样。
但是如果您正在访问localhost,您可能是开发人员,在这种情况下,您会找到缓存清除Chrome扩展名,例如"经典缓存杀手" (参见例如https://chrome.google.com/webstore/search/classic%20cache%20killer?hl=en)在各种情况下都很有用,并且可能已经安装了一个。
所以快速解决方法是:安装缓存杀手(如果你还没有),打开它,然后重新加载页面。完成!
答案 10 :(得分:6)
我从来没有想出问题的根源,但我能解决这个问题。 我删除了解决此问题的Google Chrome应用缓存文件夹。
C:\用户[用户] \应用程序数据\本地\谷歌\铬
答案 11 :(得分:5)
这些都不适合我。它是在带有本地URL的chrome更新(版本63.0.3239.84,linux)之后开始发生的。无论如何,总是会重定向到https。在这个
上花了几个小时和很多耐心究竟什么才能改变域名。
值得一提的是,域名是.app。也许它有事可做?并将其更改为.test并且chrome停止重定向
答案 12 :(得分:4)
转到 chrome://net-internals/#hsts。在删除域安全策略下输入 localhost 并按删除按钮。
现在转到 chrome://settings/clearBrowserData,勾选缓存图像和文件框,然后点击清除数据按钮。
答案 13 :(得分:1)
就我而言,我将项目路径设置为/Users/me/dev/project_root/
,并从那里运行nodeJS
/ express
服务器。
将我的路径重命名为/Users/me/project_root
(将dev
从项目路径中删除)解决了该问题。
最有可能与这项新规定有关:
Chrome 63(自2017年12月开始发布)将强制所有以.dev(和.foo)结尾的域通过预加载的HTTP Strict Transport Security(HSTS)标头重定向到HTTPS。
您可以找到有关此here的更多信息。
使用:
答案 14 :(得分:1)
针对像我这样的懒人的懒惰和快速解决方案(在Chrome 67中工作)。
只需使用“隐身窗口”选项(CTRL + SHIFT + N)在隐身模式中启动另一个Chrome窗口即可。无需删除缓存,无需深入研究Chrome的深层设置,等等。
答案 15 :(得分:1)
Chrome 63通过预加载的HSTS强制.dev域自动转换为HTTPS。
快速修复:只需将.dev域名更改为.localhost即可。
答案 16 :(得分:0)
这不是解决方案,只是一种解决方法。
单击解决方案资源管理器中的visual studio项目(顶层),然后转到属性窗口。
更改SSL已启用为true。您现在将在属性窗口中看到另一个端口号为“SSL URL”。
现在,当您运行应用程序(或在浏览器中查看)时,您必须手动将端口号更改为地址栏中的SSL端口号。
现在它作为SSL链接正常工作
答案 17 :(得分:0)
转到Chrome中的设置,然后转到高级设置,在隐私和安全部分下单击清除浏览数据,然后清除所有数据。我按照这些步骤操作,它对我有用。希望它有所帮助。
答案 18 :(得分:0)
不幸的是,这里列出的解决方案都没有帮助我解决此问题。我使用http://127.0.0.1(IP地址)而不是http://localhost解决了此问题。使用chrome浏览器进行角度开发的快速小技巧。
答案 19 :(得分:0)
一个简单的解决方案是编辑/etc/hosts
文件并为每个项目建立一个别名。
127.0.0.1 project1 project2 project3
除非您发送@bigjump提到的HSTS响应,否则这些无域名将不会对HSTS产生问题,并且如果您在项目之间来回切换,则具有保持登录会话的附加好处。
答案 20 :(得分:0)
我如何使用Chrome 79解决此问题:
只需将此网址粘贴到您的搜索输入 chrome:// flags /#allow-insecure-localhost
它通过使用实验功能对我有所帮助。
答案 21 :(得分:0)
该问题也可以在VS 2019中复制。这是由于“从Visual Studio IDE启用Java脚本调试”引起的。 VS会附加到Chrome,由于安全性或Google和Microsoft已知的原因,有时VS可能无法附加,因此您可能会遇到此问题。我可以从ASP net core 3.1应用程序使用localhost运行http和https。因此,在VS中进行调试时,请使用箭头-> IIS express运行,在“ Web浏览器(Chrome)”下方,选择“脚本调试(已禁用)”。
查看文章:https://devblogs.microsoft.com/aspnet/client-side-debugging-of-asp-net-projects-in-google-chrome/
https://docs.microsoft.com/en-us/visualstudio/debugger/debugging-web-applications?view=vs-2019
总是回退到Microsoft文档,以比查找问题更清晰。
答案 22 :(得分:0)
尝试了所有提及的内容(浏览器首选项,hsts等),但对我没有任何帮助。
我通过在主机别名后添加.localhost
来解决此问题。
赞:
127.0.0.1 myproject.localhost
127.0.0.1 dev.project.localhost
答案 23 :(得分:0)
对我来说,以下内容在 Chrome 90 中有效。我的应用在 localhost:3000
上打开了一个本地 webpack 服务器,它自动重定向到 HTTPS,我得到了 ERR_SSL_PROTOCOL_ERROR
。
我点击了 URL 旁边的小信息图标,从菜单下拉菜单中打开了站点设置。在列表中,Insecure content
被设置为 Block (default)
。
我将其更改为 Allow
,然后重新加载了 http 版本,并且加载正常。
希望这对人们有所帮助。
答案 24 :(得分:0)
我无法找到任何解决方案;但是我的 web.config 中的重定向允许我继续工作(本地主机),直到我找到导致问题的原因。
这本质上是一个将HTTPS转为HTTP的重写规则;它似乎覆盖了之前将 HTTP 重定向到 HTTPS 的规则。
它需要在 web.config 中的
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
答案 25 :(得分:0)
就我而言,我在 Mac 上使用浏览器同步,浏览器不断将 http://localhost:3000 重定向到 https://localhost:3000。
我正在使用 Valet 为本地站点提供服务,并且我已在本地 *.test 域上运行 valet secure
以为其提供 SSL 证书。因为我在浏览器同步中代理了这个 HTTPS 域,所以浏览器正在使用 HTTPS 加载 localhost:3000。
要修复它,我必须:
valet unsecure
以删除 SSL 证书valet restart
答案 26 :(得分:-1)
对于遇到相同问题的人,我通过按CTRL + SHIFT + DELETE来删除整个浏览器缓存。现在我可以通过HTTP协议访问我的localhost网站。
答案 27 :(得分:-1)
最简单的方法
在其他浏览器中运行代码。然后重新打开相同的浏览器,即从Visual Studio中更改浏览器。
答案 28 :(得分:-2)
另一种选择是使用https://github.com/rchampourlier/tunnelss
之类的东西当然它添加了另一个依赖/设置,但它也可以在dev中测试https,这可能很不错。
我使用RVM然后使用隧道工作我必须使用sudo gem install tunnelss
和sudo tunnelss
答案 29 :(得分:-2)
我的解决方案:在网址栏的右上角(收藏夹星形图标的左侧)有一个带有“x”的图标。右键单击它,它会说“不安全的脚本”,然后有一个选项来加载它们。那样做。
答案 30 :(得分:-4)
这是今天(17-3-2018)最快的解决方案:
关闭所有Chrome标签/窗口并在您的命令行上运行:(或将其添加为短代码)
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors