如何停止Chrome浏览器重定向到HTTPS?

28
几天前,Chrome开始将Wampserver中所有的虚拟主机重定向到https。一切都很正常,直到几天前,有一天我登录来处理我的网站时,Chrome显示无法访问该站点,即使我使用以前一直使用的相同URL。 Wamp正在运行,Apache和MySQL的服务都没有错误记录。
我已经尝试使用chrome://net-internals/#hsts删除域名(我在本地站点中使用假的.dev扩展名),但这没有任何作用。 我还尝试安装SSL,看看Chrome是否会将其检测为安全连接...但是没有任何变化。 我甚至尝试完全重新安装Wamp(尽管其他浏览器中的虚拟主机都正常工作),但仍然没有改变。
唯一在Chrome中有效的方法是通过http://localhost/site访问站点。 对于所有Apache虚拟主机,都会重定向到HTTPS。 我已经搜索了很多并且无法找到真正解决问题的方法。

已经回答了可能重复的问题:https://stackoverflow.com/questions/73875589/disable-website-redirection-to-https-on-chrome/77351518#77351518 - undefined
5个回答

34

Chrome v63强制使用HTTPS访问.dev域名。Internet Engineering Task ForceRFC2606明确规定了用于本地开发的顶级域名,而.dev并不在此列表中。

谷歌拥有.dev顶级域,并通过预加载HSTS自动将所有.dev域名重定向到站点的HTTPs版本。

.dev作为正式通用顶级域名(gTLD),即使存在其他解决方案(例如使用自签名证书的HTTPs),我们最好将本地开发后缀从.dev更改为其他内容。因此,您应该使用 .test .example.invalid.localhost作为本地开发TLD。


27
我认为问题是“如何停止Chrome重定向到HTTPS?”,而不是“使用哪些顶级域名代替?”… - Stretsh
5
我同意Stretsh的观点。这个答案解决了我在本地网站上的问题,但并没有回答我的关于重定向到https的问题。如果我启动一个没有SSL的网站,我将无法访问它。我会将我的本地网站更改为.test,但在你提供解决方案之前,我不会接受这个答案。 - ShoeLace1291
4
您的所有虚拟主机都以“.dev”结尾,并且无法在您的计算机上正常运行。唯一的解决方案是更改顶级域名(TLD)。 - darylknight
4
补充一下,.app域名(我用于本地开发)也归Google所有,并且具有相同的功能。 - Martin van Driel
1
我相信大多数专业开发人员在本地环境中使用.dev顶级域名(我的情况和许多其他开发人员-我相信-都在使用它)。 .dev顶级域名已经存在多年,现在它正在导致人们浪费时间,直到他们发现.dev不在RFC2606的保留示例二级域名中。我不得不转移到.devel,希望谷歌不会购买它... 感谢@benedikt将RFC2606链接带入讨论。顺便说一下,关于这个问题的好文章:https://www.theregister.co.uk/2015/03/13/google_developer_gtld_domain_icann/ - McRui

4
我无法改进@benedikt的答案,因为它是正确的。有一些好的临时解决方法:
  • 在警告页面上键入"badidea",如果您本地设置了SSL(拼凑而成),这可能无效。它可以绕过警告,但我的本地SSL设置不正确,显示另一个本地站点。
  • narayon还建议链接到Chrome论坛,我没有尝试过。

我的解决方法是将所有".dev"开发TLD更新为".d3v"。仍然足够简短,可以快速输入,描述性好,并且可能具有未来的可扩展性。


1
感谢您提供的参考。请注意,除了@benedikt答案中提到的RFC2606备忘录中的TLD之外,没有未来证明的TLD。 - Narayon

1
我发现了一个快速的解决方法,适合我的需求并且可能有助于其他人。在开发时,我使用Browser Sync,我只需将代理参数设置为“testsite.dev”,它就会在Chrome中正确地提供服务。
这是我使用的命令:
browser-sync start --proxy "testsite.dev" --port "3000" --files "./**/*.*"

0

我也使用.dev扩展名,并将在未来更改为其他域名,但对于我现有的.dev站点,在隐私错误出现时,只需单击屏幕上的任何位置并键入“badidea”,Chrome将会将您重定向到该网站。它很有效!


0

解决方案1 - 选择一个保留且具有未来性的gLTD,例如 .localhost 或 .test

编辑您的 hosts 文件(对于 Windows 系统,它位于 C:\Windows\System32\Drivers\etc\hosts)

127.0.0.1       testsite.localhost

解决方案2 - 为.dev安装自签名证书

  1. 创建证书。以管理员身份打开PowerShell并运行:

P.S. 确保先安装mkcert

C:\Users\John> mkcert *.testsite.dev

这将创建一个通配符证书,可用于所有.testsite.dev网站

  1. 从C:\ Users \ John复制这些密钥到C:\ xampp \ apache \ crt \ testsite_dev(如果不存在,请创建crt文件夹)

  2. 在C:\ Windows \ System32 \ Drivers \ etc \ hosts文件中添加条目

    127.0.0.1       testsite.dev
    127.0.0.1       www.testsite.dev
  1. 打开你的 C:\xampp\apache\conf\extra\httpd-vhosts.conf 文件并添加一个条目
    <VirtualHost *:443>
       DocumentRoot "C:/xampp/htdocs"
       ServerName testsite.dev
       ServerAlias www.testsite.dev

       Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"

       SSLEngine on
       SSLCertificateFile "crt/testsite_dev/_wildcard.testsite.dev.pem"
       SSLCertificateKeyFile "crt/testsite_dev/_wildcard.testsite.dev-key.pem"
    </VirtualHost>
  1. 重新启动Apache

  2. (额外) 步骤 - 让您的操作系统和浏览器信任自签名证书,否则它将无法工作


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接