【问题标题】:net::ERR_INSECURE_RESPONSE in ChromeChrome 中的 net::ERR_INSECURE_RESPONSE
【发布时间】:2016-05-20 21:09:58
【问题描述】:

从我的 API 获取一些数据时,我在 Chrome 控制台中收到错误 net::ERR_INSECURE_RESPONSE

此错误通常是由于未签名的证书引起的;但是,这不是问题,因为我有一个有效且签名的证书。

该错误根本不会经常发生,如果我重新启动 Chrome 浏览器,它就会消失。它也根本不会出现在任何其他浏览器中(在 Safari、Mozilla、Opera 上测试过)

知道为什么会这样吗?这只是一个浏览器错误吗?

【问题讨论】:

  • 我也有这个问题,但它在客户端站点是 100% 可重复的,在它之外是 0% 可重复的。我还使用了有效且签名的证书,这使得网络上的几乎所有信息都无法使用,因为它已经指的是自签名证书。
  • 您联系的 API 是否也在 SSL 上?

标签: google-chrome


【解决方案1】:

当您从 Chrome 55 更新到 Chrome 56 (56.0.2924.87) 时会发生这种情况。
这是安全执法的增加。
它不会通过重新启动浏览器而消失,也不是错误。

Mountain View 表示希望您永远不会遇到该消息, 因为证书颁发机构需要停止发布 SHA-1 2016年的证书。以防万一,谷歌计划继续颁发 警告,直到 Chrome 在 1 月完全停止支持 SHA-1 1st, 2017. 当那一天到来时,一个仍然使用该功能的网站 将触发致命的网络错误。 (来源:Engadget.com

如果发生这种情况,最可能的原因是您(或网站的)SSL 证书使用了 SHA1。
SHA1 已损坏,使用 SHA1 的 SSL 证书不再安全(Chrome 向您展示这一点已经很长时间了 - 现在它阻止了 NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM)。

另一个可能的原因是您的 SSL 证书已过期
此外,您应该禁用 SSL2 和 SSL3 (Poodle Attack) 的向后兼容性。
您应该只使用 TLS (SSL 3.1+)。

要测试您域的 SSL 证书,您可以使用 SSL labs SSL test

要找出究竟是什么问题: 打开 chrome 开发者控制台(CTRL + SHIFT + J 或 F12) 并切换到安全选项卡

欲了解更多信息:
https://support.google.com/chrome/answer/95617?visit_id=1-636221396724527190-3454695657&p=ui_security_indicator&rd=1

仅供参考:

十年来,SHA-1 每天都在变得越来越脆弱和不安全 现在,考虑到我们倾向于信任网站,这很危险 “https://”在他们的 URL 中。其他浏览器,如 Mozilla Firefox 和 Microsoft Edge 还计划停止支持它,以努力 鼓励网站所有者切换到更安全的 SHA-2 证书 尽快。

如果您急需解决此问题(您需要先关闭 所有 正在运行的 Chrome 实例 - 否则将无法正常工作):

chrome --args --ignore-certificate-errors

请注意:不要在您的 Chrome 实例中激活这些命令行设置的情况下进行网上银行或 gmail'ing。

【讨论】:

  • 嗨 - 很好的解释!我成功地使用本教程设置了我的证书,digitalocean.com/community/tutorials/… 但现在我每次尝试加载脚本时都会收到此错误。关于如何升级的任何想法?我认为这是可用的最新选项。
  • 我已经通过命令'defaults write com.google.Chrome EnableSha1ForLocalAnchors -bool true'修复了mac的问题并重新启动chrome。关于如何在其他操作系统上执行 enableSha1ForLocalAnchors 有不同的细节。
  • 另一个原因是您是使用自签名证书的 Web 开发人员。感谢谷歌。
【解决方案2】:

我最近遇到了类似的问题。我试图访问具有自签名证书的 https REST 端点。我在 Google Chrome 控制台中收到了net::ERR_INSECURE_RESPONSE。在网上进行了一些搜索以找到适合我的解决方案:

  1. 在您尝试进行 API 调用的同一窗口中打开一个新选项卡。
  2. 导航到您尝试以编程方式访问的 https URL。
  3. 您应该会看到类似这样的屏幕:
  4. 点击高级 > 继续<url>,您应该会看到响应(如果有的话)
  5. 现在尝试通过您的脚本进行 API 调用。

【讨论】:

  • 我希望您没有使用它来传输机密信息(信用卡付款)。如果您有内部自签名证书,显然正确的方法是将证书添加到机器/域(或 Linux 上的 mozroots)上的受信任证书中。 Unsafe 将忽略任何和所有证书错误 - 这意味着使用 SSL 完全没有意义,您也可以使用 HTTP。
  • 这个答案非常有用。谢谢!
  • 是的,我使用了相同的技巧,但使用真正的证书似乎是唯一可行的方法。
  • @StefanSteiger 设置起来很复杂,对源代码有影响,在 dev/staging/prod 环境之间的工作方式不同。基本上,另一层复杂性。另外,let's encrypt 不提供 IP 地址证书,因此需要使用 DNS 路由来获取域名。如果它不是免费的,那就更糟了,例如,不想在暂存环境中为证书付费。我不是在抱怨 let'sEncrypt,而是在抱怨证书的整体复杂性。特别是对于初学者和非系统管理员。
  • @Vadorequest:不能说我觉得设置 SSL 很困难。也许您不应该使用 apache 或 IIS 等无脑服务器软件。此外,您也可以在 dev&staging 上设置 SSL,因此环境之间没有区别。此外,如果您的测试环境与您的 prod 环境不同,那么它就不是真正的测试环境,那么这只是一个多余的步骤。
【解决方案3】:

缺少中间证书可能是问题所在。

您可能希望使用 curl、openssl 或类似 https://www.digicert.com/help/ 的网站检查您的 https://hostname

不知道为什么 Chrome(可能)有时会在验证这些证书时遇到问题。

【讨论】:

    【解决方案4】:

    我在 amazon.ca、meetup.com 和 Symantec 主页上收到此错误。

    我在 Chrome 浏览器中访问了更新页面(它是 53.*)并检查了升级,它显示 没有可用的更新。在我的办公室里询问后,发现最新版本是 55,但由于某种原因我一直停留在 53。

    升级后(必须从 Chrome 网站手动下载)问题消失了!

    【讨论】:

      【解决方案5】:

      对我来说,这个问题的答案可以在 StackOverflow 上找到:

      ERR_INSECURE_RESPONSE caused by change to Fiddler's root certificate generation using CertEnroll for Windows 7 and later

      很遗憾,此更改可能会给拥有 以前信任 Fiddler 根证书;浏览器可能会显示 NET::ERR_CERT_AUTHORITY_INVALID 或 The 证书不是由受信任的证书颁发机构颁发的。

      (引用自the original source

      我在浏览器上遇到了这个 ERR_CERT_AUTHORITY_INVALID 错误,并且在 Chrome 的开发者工具中显示了 ERR_INSECURE_RESPONSE。

      【讨论】:

        【解决方案6】:

        可能你遇到过这个问题:net::ERR_INSECURE_RESPONSE

        您需要检查您的服务器支持的加密算法。例如对于 apache,您可以这样配置密码套件:cipher suite

        您正在运行哪个版本的 chrome,以及为您的 API 提供服务的服务器是什么?

        【讨论】:

        • 不要认为这是问题,因为重新启动浏览器会使这个问题消失
        • 并使用 chrome 50.0.2661.102 并使用 Rails 来提供我的 API。但是,就像我提到的那样,无法始终如一地重现此问题,因为关闭浏览器会使一切恢复正常,因此加密算法似乎不是问题
        【解决方案7】:

        我在 Android 上测试我的 Cordova 应用程序时遇到了这个问题。碰巧这个 android 设备不会保留它的日期,并且会以某种方式重置回它的出厂日期。它调用的 API 有一个从今年开始有效的证书,而启动后的设备日期是 2017 年。现在,我必须 adb shell 并手动更改日期。

        【讨论】:

          【解决方案8】:

          不知道这个问题是否相关,但这发生在我的客户端上,该客户端在 Windows 上设置了不正确的日期时间。这将是另一种观看方式。 如果是这种情况,它也会在其他浏览器上重现(至少在 firefox 和 chrome 上)。

          我修复了将 Windows 上的日期时间更新为实际日期时间的问题。 希望它可以帮助某人。

          【讨论】:

            猜你喜欢
            • 2022-07-15
            • 2016-12-01
            • 1970-01-01
            • 2014-07-04
            • 2014-08-21
            • 1970-01-01
            • 2015-01-12
            • 2014-12-31
            • 1970-01-01
            相关资源
            最近更新 更多