【问题标题】:Google Chrome localhost | NET::ERR_CERT_AUTHORITY_INVALID谷歌浏览器本地主机 | NET::ERR_CERT_AUTHORITY_INVALID
【发布时间】:2018-05-21 20:49:40
【问题描述】:

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

我正在尝试访问我的任何开发站点(使用 Ampps)并且收到以下错误:-

您的连接不是私密的 攻击者可能试图窃取您的 来自 website.dev 的信息(例如,密码、消息 或信用卡)。了解更多 NET::ERR_CERT_AUTHORITY_INVALID

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

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

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

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

【问题讨论】:

  • 嗨!这里完全相同的问题。任何进展?奇怪的是,昨天一切都很好,今天却完全崩溃了。我怀疑 Chrome 已经更新(我的电脑上现在是 63.0.3239.84)。我在网上阅读了几篇文章/帖子并尝试清除缓存、重新安装 Chrome、删除域的 HSTS 策略、访问 w/ 和 w/o https。
  • @curveball 我以为我快疯了。我在另一台计算机上进行了完全不同的安装测试,它运行良好,但我认为它与 .dev 无关,我正在使用 .localhost 进行测试!它实际上是在一夜之间发生的,所以它一定是 Chrome。非常感谢 Google,为了解决这个愚蠢的问题而搞砸了几天的工作。他们为什么要将 .dev 设置为强制 SSL??
  • @Alison 欢迎您!是的,这个麻烦是突然出现的。我不够熟练,无法列出他们为什么这样做的充分理由。它围绕“无处不在的https”理念展开。也许,他们非常想添加这个功能,以至于他们一夜之间就匆匆忙忙地做到了。虽然他们在 Chrome 中显示的消息是完全真实的(“您的连接不是私密的”),但也非常令人费解,因为有几个不同的原因导致了相同的消息,而且这种行为的真正原因有点隐藏。在谈到要点之前,我自己已经尝试了一些建议。
  • 我在开发过程中遇到了完全相同的问题,chrome 无法让我绕过这个警告(按钮被隐藏):如果您无法单击让您进入网站的按钮(在我的情况下,我在本地主机上的应用程序)您只需输入 thisisunsafe 就可以了。来源:medium.com/@dblazeski/…

标签: google-chrome ssl localhost hsts


【解决方案1】:

玩了一圈之后,我想出了一种解决方案。

首先说一下问题所在:这个错误的原因是我们俩在本地开发时都使用了.dev域。如果你去here,你会发现根.dev域归谷歌所有,并在Chrome中应用HSTS,他们会为这个域强制执行https-redirect。由于我们使用.dev 域,我们被重定向到https 版本,同时我们没有安装任何实际证书。所以,我们看到了这个恼人的错误。如果你去chrome://net-internals/#hsts你可以检查你的.dev域,你会发现

static_sts_domain: dev
static_upgrade_mode: FORCE_HTTPS
static_sts_include_subdomains: true

这证实了 HSTS 确实在 *.dev 上强制执行。策略类型是静态的,据我了解,它有点硬编码为 https-redirect .dev 域。

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

【讨论】:

  • 感谢@curveball 的解释 - 这是新事物吗,因为过去两年我一直在为我的所有域使用 .dev 并且以前从未遇到过这样的问题。它仍在我的笔记本电脑上与 .dev 一起使用,但在我的 iMac 上却不行。它们都运行相同版本的操作系统和 Chrome 版本
  • 据我了解,这不是一个全新的想法,尽管我也是第一次遇到这个问题。我认为新的是这个带有 hsts 的故事成为 chrome 中的默认行为。此外,.dev 等需要重定向到 https 版本的域列表正在增加。
  • 再次感谢@curveball - 所以继续使用'test'而不是'test.dev'或者我们可以使用其他类似test.yourcompanyname的东西? (只要它是尚未使用的东西)
  • 嗨!我切换到 example.site,即现在我使用“example.site”而不是“example.dev”。但是你可以尝试任何适合你的东西。顺便说一句,“.test”听起来像是“.dev”的一个很好的替代品。也许,“example.test”(假设“.test”在 Chrome 中的行为不像“.dev”)?
  • 非常感谢,因为这让我发疯了,我什至认为它与 .dev 无关。我确实看到了 static_upgrade_mode: FORCE_HTTPS 设置,并且由于某种原因没有将它与该特定域扩展相关联。在我的 Chrome 上,我什至无法绕过它;它只是一个错误页面,没有通常的“不安全站点”内容。老实说,我认为这应该被报告为一个错误,或者至少一个警告会很好。他们没有意识到我们中有多少人使用 .dev 作为 localhost 选项吗?大声笑。
【解决方案2】:

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

【讨论】:

  • 这似乎在没有“.dev”的情况下工作,但奇怪的是,在过去的两年里,它一直在使用 .dev 为我所有的本地主机域工作,突然间它就停止工作了在 Chrome 上
  • 过去两年我也一直在使用 .dev,但它突然停止工作。这对我有用。谢谢。
  • 这个答案对我来说更像是一个评论。这不会为这个问题的特色观众提供任何帮助,他们对您的回答也没有任何用处。你能用解释等更新你的答案吗
  • 当然可以。编辑了我的答案。希望对更多人有帮助。
  • you can add an exception for the page in Mozilla Firefox 你是怎么做到的?
【解决方案3】:

最好的解决方案是不要使用 .dev,因为它归 Google 所有。 在这里您可以找到所有已声明 TLD 的更新列表:https://www.rfc-editor.org/rfc/rfc6761

为了安全起见,请选择无人认领的 TLD,例如 .test.localhost。你可以在这里阅读一篇有用的博文:https://iyware.com/dont-use-dev-for-development/

【讨论】:

  • 你也可以使用 .local :)
  • @solomonculaste 是的,你可以,但它可能会像 .dev 一样被声明。最好用.testtools.ietf.org/html/rfc2606#section-2,不用再担心了。
  • 感谢分享那篇文章。它写得很好,很有意义。我已将本地开发人员切换为使用 .loc
【解决方案4】:

导航到

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

并将其设置为启用。

【讨论】:

  • 在这个问题上花了一整天的时间,终于找到了一个有用的解决方法!
  • 这仅适用于文字“localhost”主机名,不适用于其他本地域。
  • @MikeShiyan 我终于使用了localhost.devlocalhost.test 并且成功了。
  • 在 Firefox 中是否有类似的功能?
  • 如果您尝试在尚未根据您的需要配置的新安装的浏览器上运行 API(.Net),这基本上应该可以工作。它对我有用。谢谢!
【解决方案5】:

我也遇到了同样的bug,因为crl文件过期了,解决办法是更新crl文件

【讨论】:

    【解决方案6】:

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

    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

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

    【讨论】:

    • 我尝试在 Android 设备上安装两个导出的证书,但没有成功。
    猜你喜欢
    • 1970-01-01
    • 2014-09-22
    • 2011-03-03
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2010-10-08
    • 2019-05-11
    • 2018-05-30
    相关资源
    最近更新 更多