net :: ERR_INSECURE_RESPONSE在Chrome中


67

从我的API提取一些数据时,Chrome控制台出现了net :: ERR_INSECURE_RESPONSE错误

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

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

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


2
我也有这个问题,但是在客户站点上它是100%可重复的,在外部它是0%可重复的。我还使用了有效且经过签名的证书,由于它已经指向自签名证书,因此几乎使网络上的所有信息都不可用。
kirps

您正在联系的API也在SSL上吗?
artur99 '17

Answers:


78

从Chrome 55更新到Chrome 56(56.0.2924.87)时会发生这种情况。
这是安全实施的增加。
重新启动浏览器并不会消失,这也不是错误。

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

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

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

要测试您域的SSL证书,您可以使用SSL实验室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每天都变得越来越虚弱和不安全,考虑到我们倾向于信任URL中带有“ https://”的网站,这是危险的。其他浏览器(例如Mozilla Firefox和Microsoft Edge)也计划停止支持它,以鼓励网站所有者尽快转换为更安全的SHA-2证书。

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

chrome --args --ignore-certificate-errors

请注意:在您的Chrome实例中,不要使用处于活动状态的命令行设置进行网上银行交易或gmail'ing。


嗨-很棒的解释!我已成功通过本教程Digitalocean.com/community/tutorials/设置了证书, 但是现在每次尝试加载脚本时都会遇到此错误。关于如何升级有什么想法?我认为这是最新可用的选项。
itchyspacesuit

我已经通过命令'defaults write com.google.Chrome EnableSha1ForLocalAnchors -bool true'修复了该问题,然后重新启动chrome。有关如何在其他操作系统上执行enableSha1ForLocalAnchors的信息,有很多不同的细节。
okutane

另一个原因是您是使用自签名证书的Web开发人员。感谢Google。
查尔斯·伍德

65

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

  1. 在您尝试进行API调用的同一窗口中打开一个新标签。
  2. 导航到您要尝试以编程方式访问的https URL。
  3. 您应该看到类似以下的屏幕: 在此处输入图片说明
  4. 单击高级>继续<url>,您应该看到响应(如果有的话)
  5. 现在,尝试通过脚本进行API调用。

我希望您不要用它来传输机密信息(信用卡付款)。如果您具有内部自签名证书,则显然正确的方法是将证书添加到计算机/域(或Linux上的mozroots)上的受信任证书中。不安全会忽略所有证书错误-使用SSL完全没有意义,您也可以使用HTTP。
Stefan Steiger

2
这个答案非常有用。谢谢!
Evgenia Manolova '10

是的,我使用了相同的技巧,但是使用真正的证书似乎是唯一可行的方法。
Vadorequest '17

@StefanSteiger设置复杂,对源代码有影响,在dev / staging / prod envs之间的工作方式不同。基本上是另一层复杂性。另外,让我们加密不提供IP地址证书,因此必须使用DNS路由来获取域名。如果它不是免费的,甚至不愿意为登台环境中的证书付费,那就更糟了。我并不是在抱怨letsEncrypt,而是在总体上讲证书的整体复杂性。特别适合初学者和非系统管理员。
Vadorequest '17

@Vadorequest:不能说我觉得设置SSL很困难。也许您不应该使用apache或IIS之类的Braindead服务器软件。另外,您也可以在开发和登台上设置SSL,因此环境之间不会有任何区别。另外,如果您的测试环境与产品环境不同,那么它并不是真正的测试环境,那么这只是多余的一步。
Stefan Steiger,


2

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

我进入了Chrome浏览器中的更新页面(当时为53. *),并检查了升级,它显示没有可用的更新。在办公室周围询问后,发现最新版本是55,但由于某种原因,我被困在53。

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


2

对我来说,此问题的答案在StackOverflow上可用:

ERR_INSECURE_RESPONSE是由于使用Windows 7及更高版本的CertEnroll更改了Fiddler的根证书而导致的

不幸的是,此更改可能会对以前信任Fiddler根证书的用户造成问题。浏览器可能会显示错误消息,例如NET :: ERR_CERT_AUTHORITY_INVALID或证书不是由受信任的证书颁发机构颁发的。

(引自 原文

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


1

也许您遇到了这个问题:net :: ERR_INSECURE_RESPONSE

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

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


1
不要以为这是问题所在,因为重新启动浏览器使此问题消失了
-Karim

1
并使用chrome 50.0.2661.102和使用Rails来提供我的API。但是,就像我提到的那样,由于关闭浏览器可以使所有功能再次正常工作,因此无法始终如一地重现此问题,因此加密算法似乎并不是问题
Karim

0

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


0

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

我修复了将Windows上的datetime更新为实际的实际日期时间的问题。希望它能帮助到别人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.