Apache 如何阻止Chrome重定向到HTTPS?

Apache 如何阻止Chrome重定向到HTTPS?,apache,google-chrome,ssl,https,wamp,Apache,Google Chrome,Ssl,Https,Wamp,几天前,Chrome开始将我在Wampserver中的所有vHost重定向到https。直到几天前,一切都很好,然后有一天我登录到我的网站上工作,Chrome说无法访问该网站,尽管我使用的是过去一直使用的URL。Wamp与Apache和MySQL一样运行,这些服务在错误日志中都没有任何错误 我已经尝试用chrome://net-internals/#hsts但这没有任何作用。我还尝试安装SSL,看看Chrome是否会将其检测为安全连接。。。没有什么。我甚至尝试过完全重新安装Wamp(尽管vHos

几天前,Chrome开始将我在Wampserver中的所有vHost重定向到https。直到几天前,一切都很好,然后有一天我登录到我的网站上工作,Chrome说无法访问该网站,尽管我使用的是过去一直使用的URL。Wamp与Apache和MySQL一样运行,这些服务在错误日志中都没有任何错误

我已经尝试用
chrome://net-internals/#hsts
但这没有任何作用。我还尝试安装SSL,看看Chrome是否会将其检测为安全连接。。。没有什么。我甚至尝试过完全重新安装Wamp(尽管vHost在其他浏览器中运行良好),但没有任何改变


Chrome中唯一有效的功能就是通过
http://localhost/site
。所有Apache vHost都会重定向到HTTPS。我在谷歌上搜索了又搜索,找不到任何能解决问题的方法。

Chrome v63将.dev域强制转换为HTTPS。Internet工程任务组指定了哪些顶级域应用于本地开发,而.dev不在该列表中

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


由于.dev是一个官方通用顶级域(gTLD),我们最好将本地开发后缀从.dev更改为其他名称,即使有其他解决方案(例如带有自签名证书的https)。因此,您应该使用.test.example.invalid.localhost作为本地开发TLD。

我无法改进@benedikt的答案,因为它是正确的。有很好的临时修复:
  • ,如果您在本地设置了SSL(黑客攻击),这可能不起作用。它绕过了警告,但我的本地SSL设置不正确,并显示另一个本地站点。
  • 还建议链接到chrome论坛,我还没有尝试过

我的解决方法是将所有“.dev”开发TLD更新为“.d3v”
仍然足够短,可以快速输入,描述,可能是未来的证明。

我找到了一个适合我需要的快速解决方案,可以帮助其他人

我在开发时使用,我只是将代理参数设置为“testsite.dev”,它将在Chrome中正确运行

以下是我正在使用的命令:

browser-sync start --proxy "testsite.dev" --port "3000" --files "./**/*.*"

我也使用了.dev扩展名,将来会切换到其他域,但对于我现有的.dev站点,当出现隐私错误时,单击屏幕上的任意位置并键入“badidea”,chrome会将您重定向到该站点。它起作用了

解决方案1-选择保留的、经得起未来考验的gLTD,如.localhost或.test

编辑主机文件(对于Windows,它是C:\Windows\System32\Drivers\etc\hosts)

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

  • 创建证书。以管理员身份打开Powershell并运行:
  • 另外,请确保先安装mkcert

    这将创建适用于所有.testsite.dev站点的通配符证书

  • 将这些密钥从C:\Users\John复制到C:\xampp\apache\crt\testsite\u dev(如果crt文件夹不存在,则创建它)

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

  • 打开C:\xampp\apache\conf\extra\httpd-vhosts.conf并添加一个条目
  • 
    DocumentRoot“C:/xampp/htdocs”
    ServerName testsite.dev
    ServerAlias www.testsite.dev
    标头始终设置严格的传输安全性“最大年龄=63072000;包括子域”
    斯伦金安
    SSLCertificateFile“crt/testsite\u dev/\u wildcard.testsite.dev.pem”
    SSLCertificateKeyFile“crt/testsite\u dev/\u wildcard.testsite.dev key.pem”
    
  • 重新启动Apache

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


  • 我认为问题是“如何阻止Chrome重定向到HTTPS?”而不是“使用哪个TLD来代替?”…我同意Stretch。答案确实解决了我在本地网站上的问题,但没有回答我关于重定向到HTTPS的问题。如果我启动一个没有SSL的网站怎么办?我将无法访问它。我会将我的本地站点更改为.test,但在您为我的问题提供解决方案之前,我不会接受此答案。您的所有vhost都以.dev结尾,无法再让它们在您的计算机上工作。唯一的解决方案是更改tld。只需补充一点,.app域(我用于本地开发)也归谷歌所有,并且也是这样做的。我相信大多数专业开发人员在其本地环境中使用.dev tld(我的案例和成千上万的其他开发人员,我相信他们都使用它)。.dev TLD已经在我们中间使用了很多年,现在它导致人们浪费时间,直到他们发现.dev不在RFC2606的保留示例二级域名上。我不得不搬到。德维尔,谷歌不会买它。。。感谢@benedikt将RFC2606链接带到讨论。顺便说一句,这是一篇关于这个问题的好文章:谢谢你的参考。请注意,除了@benedikt answer中提到的RFC2606备忘录中的TLD之外,没有未来证明TLD。
    127.0.0.1       testsite.localhost
    
    C:\Users\John> mkcert *.testsite.dev
    
        127.0.0.1       testsite.dev
        127.0.0.1       www.testsite.dev
    
        <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>