【问题标题】:How to stop Chrome from redirecting to HTTPS?如何阻止 Chrome 重定向到 HTTPS?
【发布时间】:2023-12-28 18:53:01
【问题描述】:

几天前,Chrome 开始将我在 Wampserver 中的所有虚拟主机重定向到 https。直到几天前一切正常,然后有一天我登录到我的网站上工作,Chrome 说无法访问该网站,即使我使用了与过去相同的 URL。 Wamp 与 Apache 和 MySQL 一样运行,并且这些服务在错误日志中都没有任何错误。

我已经尝试使用chrome://net-internals/#hsts 删除域(我为我的本地站点使用假的 .dev 扩展名),但这并没有做任何事情。我还尝试安装 SSL 以查看 Chrome 是否会将其检测为安全连接……什么也没有。我什至尝试完全重新安装 Wamp(即使 vHost 在其他浏览器中运行良好),但没有任何改变。

在 Chrome 中唯一可以通过 http://localhost/site 访问网站。我所有的 Apache vHost 都会重定向到 HTTPS。我用谷歌搜索和搜索,找不到任何能真正解决问题的东西。

【问题讨论】:

    标签: apache google-chrome ssl https wamp


    【解决方案1】:

    Chrome v63 强制 .dev 域使用 HTTPS。互联网工程任务组RFC2606 指定了哪些*域应该用于本地开发,而 .dev 不在该列表中。

    Google 拥有 .dev *域名,并通过预加载的 HSTS 自动将所有 .dev 域名重定向到网站的 HTTPs 版本。

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

    【讨论】:

    • 我认为问题是“如何阻止 Chrome 重定向到 HTTPS?”而不是“改用哪个 TLD?”...
    • 我同意 Stretsh。答案确实解决了我的本地站点问题,但没有回答我关于重定向到 https 的问题。如果我启动一个没有 SSL 的网站怎么办?我将无法访问它。我会将我的本地站点更改为 .test,但在您为我的问题提供解决方案之前,我不会接受这个答案。
    • 您所有的虚拟主机都以 .dev 结尾,并且无法再让它们在您的机器上运行。唯一的解决方案是更改 tld。
    • 补充一点,.app 域(我用于本地开发)也归 Google 所有,并且做同样的事情。
    • 我相信大多数专业开发人员在他们的本地环境中使用 .dev TLD(我的情况和成千上万的其他开发人员——我相信——使用它)。 .dev TLD 已在我们中间使用多年,现在它导致人们浪费时间,直到他们发现 .dev 不在 RFC2606 的保留示例二级域名中。我不得不转向 .devel 跳跃,因为 Google 不会购买它……感谢 @benedikt 将 RFC2606 链接用于讨论。顺便说一下,关于这个问题的一篇好文章:theregister.co.uk/2015/03/13/google_developer_gtld_domain_icann
    【解决方案2】:

    我无法改进@benedikt 的答案,因为它是正确的。有很好的临时修复:

    • typing "badidea" on the warning page,如果您在本地设置了 SSL(一起破解),这可能不起作用。它绕过了警告,但我的本地 SSL 设置不正确并显示另一个本地站点。
    • narayon 还建议了一个我没有尝试过的 chrome 论坛的链接。

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

    【讨论】:

    • 感谢您的参考。请注意,除了@benedikt 回答中提到的 RFC2606 备忘录中的 TLD 之外,没有面向未来的 TLD。
    【解决方案3】:

    我找到了一种快速的解决方法,可以满足我的需求,并且可能对其他人有所帮助。

    我在开发时使用Browser Sync,我只是将代理参数设置为“testsite.dev”,它会在 Chrome 中正确提供。

    这是我正在使用的命令:

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

    【讨论】:

      【解决方案4】:

      我也使用 .dev 扩展名,将来会更改为其他域,但对于我现有的 .dev 网站,当隐私错误出现时,单击屏幕上的任意位置并输入“badidea”,chrome 会重定向你到网站。有用!

      【讨论】:

        【解决方案5】:

        解决方案 1 - 选择保留且面向未来的 gLTD,例如 .localhost 或 .test

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

        127.0.0.1       testsite.localhost
        

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

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

        附:确保先安装 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. (额外)步骤 - 让您的操作系统和浏览器信任自签名证书,否则将无法正常工作

        【讨论】: