网站可通过域在所有浏览器中访问,但 Chrome 除外

And*_*iam 30 nginx google-chrome chrome

我正在尝试使用运行 nginx 的 Ubuntu 机器建立一个网站。出于某种原因,我可以在 Safari 和 Firefox 中通过域名访问该站点,但在 Chrome 中它无法访问服务器。但是,我可以使用 curl、Postman 等,并且可以根据需要返回 index.html。

我发现在 Chrome 中,我可以使用 IP 地址访问该站点,但我完全不知道接下来要检查的位置。

这是我的配置文件:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
    }

}
Run Code Online (Sandbox Code Playgroud)

我更改了响应代码只是为了确保这是我实际使用的配置。

任何帮助,将不胜感激!

编辑:域是 gwilliam.dev

Mos*_*atz 84

您的问题是因为您正在使用.dev域。

整个.dev顶级域 (TLD)都在 HSTS 预加载列表中,这意味着您必须使用 HTTPS 访问它。根据您的 nginx 配置片段,您只提供 HTTP 绑定,而不是 HTTPS。

事实上,我很惊讶您能够使用 Firefox 访问域,因为.dev至少从 2018 年年中开始,Firefox 就一直在强制使用 HTTPS。您可能使用的是非常旧的版本,在这种情况下,您应该立即升级。

在您的站点上获得 HTTPS 支持的最简单方法是LetsEncrypt。设置完成后,您的网站应该可以在 Chrome 中运行。

  • @AndrewGwilliam 我认识一些计算机安全研究人员,他们对 Apple 的评价很低,因为他们没有实现其他浏览器制造商拥有的一些最简单的安全功能。即使对于非安全功能,与 Chrome 和 Firefox 相比,Safari 也非常糟糕,以至于我工作的公司在我们的网络应用程序中不支持 Safari。我们唯一不支持的其他浏览器是经典的 Internet Explorer。 (7认同)
  • 对于 Safari 不支持的内容,只需滚动 https://caniuse.com 即可了解我的意思。 (3认同)
  • 如果可以的话,我会为 LetsEncrypt 第二次 +1。它非常容易配置和使用。 (3认同)