Google Chrome 本地主机 | NET::ERR_CERT_AUTHORITY_INVALID

Google Chrome localhost | NET::ERR_CERT_AUTHORITY_INVALID

突然之间,我似乎对 Google Chrome 使用 localhost 遇到了问题。

我正在尝试访问我的任何开发站点(使用 Ampps),但出现以下错误:-

Your connection is not private Attackers might be trying to steal your information from website.dev (for example, passwords, messages or credit cards). Learn more NET::ERR_CERT_AUTHORITY_INVALID

当我访问任何开发站点时,它会自动从 http://website.dev to https://website.dev 重定向。我在 Safari 或 Firefox 中没有任何问题,所以我不明白发生了什么。

我已经尝试重新安装 Google Chrome,将其重置为出厂默认设置...

我认为这可能是 Keychain Access --> Certificates 的问题,但如果是这种情况,这是否意味着它不能在 Firefox 和 Safari 中运行?

我花了一段时间试图找到解决方案,但到目前为止没有任何效果,所以我将不胜感激有关如何解决此问题的一些建议。我什至无法继续通过此警告,因为我没有得到继续 link(不安全),如下所示:-

经过一番折腾,我想到了一种解决办法。

首先说说问题所在:出现这个错误的原因是我们双方都使用了.dev域名进行本地开发。如果您在 Chrome 中转到 here you will find out that root .dev domain is owned by Google and applying HSTS,他们会为此域强制执行 https 重定向。由于我们使用 .dev 域,我们被重定向到 https 版本,同时我们没有安装任何实际证书。所以,我们看到了这个烦人的错误。如果您转到 chrome://net-internals/#hsts,您可以检查您的 .dev 域,您实际上会发现

static_sts_domain: dev
static_upgrade_mode: FORCE_HTTPS
static_sts_include_subdomains: true

这证实了 HSTS 确实在 *.dev 上强制执行。政策类型是静态的,据我所知,它有点硬编码到 https 重定向 .dev 域。

因此,至少有 2 种方法 - 以某种方式获取并设置实际证书,或者只是使用 httpd-vhosts.conf 中的另一个(不是 .dev)根域进行本地开发(也不要忘记更新 /etc/hosts 并再次启动 apache)。我去了另一个根域路由,它解决了这个问题。

这真的很烦人,但是将本地网站映射到 .dev 以外的其他网站(我个人使用 .devo)确实有效并解决了 chrome 中的问题。此外,您可以在 Mozilla Firefox 中为该页面添加一个例外,而根本不处理它。这只是 Chrome 63+

上的问题

最好的解决办法是不要使用 .dev,因为它属于 Google。 您可以在此处找到所有声明的 TLD 的更新列表:https://www.rfc-editor.org/rfc/rfc6761

为了安全起见,请选择一个无人认领的 TLD,例如 .test or .localhost. You can read a useful blog post here : https://iyware.com/dont-use-dev-for-development/

导航到

chrome://flags/#allow-insecure-localhost

并将其设置为启用。

我遇到了同样的错误,因为CRL文件已经过时了,解决方法是更新crl文件

您需要将远程站点证书添加到本地密钥库

  1. 要从远程站点下载证书,您将需要 keytool,以管理员身份打开 gitbash 并在命令下方 运行 生成证书

    openssl s_client -showcerts -connect host:port

  2. 将上述命令的值从-----BEGIN CERTIFICATE----------END CERTIFICATE-----保存到.crt文件中。

  3. 将证书添加到您的本地密钥库,运行 下面的命令

    keytool -import -noprompt -trustcacerts -alias name_of_certificate -file "path_of_dot_crt_file" -keystore "C:\Program Files\Java\jdk1.8.0_192\jre\lib\security\cacerts" -storepass changeit

您还可以将下载的证书添加到您的浏览器。