如何解决Chrome浏览器 ERR_insecure_response 问题

背景

前端的同学反馈,我们公司的离线客户端(使用electron封装的桌面应用),在一些学校的电脑上无法访问我们的服务端接口。百度、腾讯等网站却可以正常访问,唯独我们自己的服务器不可以访问。使用终端工具,也可以Ping通我们的服务器,使用chrome浏览器却不可以访问。

问题描述

接口报错如图所示:


接口错误信息

可以看到浏览器的控制台输出错误信息:net::ERR_insecure_response。

解决办法

将学校电脑的本地时间与网络时间进行同步。

原因

原来学校的电脑使用的系统是重启还原系统。每次重启后,电脑的系统会进行还原,并且系统将本地时间设置为2013年。然而我们服务端的SSL证书的有效期为2017年~2019年,客户端与服务器端建立HTTPS服务时,发现证书无效。因而,客户端报 ERR_insecure_response 错误。因此,只需要将本地时间与网络时间进行同步,即可正常服务端接口。

其他问题

为什么可以访问百度、腾讯等大型公司的网站呢?

这些大型公司的SSL证书的有效期很长,且刚好包括了2013年。因此,可以正常访问。

为什么可以Ping通域名,但是无法通过客户端访问服务端域名呢?

ping 使用的是ICMP协议(互联网控制消息协议),它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。

然而,客户端访问服务端使用的是 HTTPS 协议。客户端与服务端在建立可信的链接时,由于证书问题,导致建立链接失败。因而,不可以访问。

ping example.com 与 ping http://example.com 的区别

当我们使用ping example.com时,我们发现可以正常收到相应。然而,使用 ping http://example.com 这个命令是,发现ping不能正常工作。
原因是,当我们ping以一个域名时,DNS服务会对域名进行解析,然后返回IP地址。然后,DNS服务并能对 http://example.com 这种域名进行解析,无法返回IP。因而,ping http://example.com 不能工作。

参考资料

  • 划一划 HTTPS 以及 SSL/TLS 的重要知识点
  • Difference between pinging with and without http://
  • Chrome 打开网页显示不完全,控制台显示 net::ERR_INSECURE_RESPONSE 错误

你可能感兴趣的:(如何解决Chrome浏览器 ERR_insecure_response 问题)