https证书链校验失败

  • 时间:2018-06-20 22:32 作者:Jess的一亩三分地 来源:Jess的一亩三分地 阅读:285
  • 扫一扫,手机访问
摘要:https证书链校验失败https url in browser好容易线上运行稳固了连个月了。今天上午忽然说 https 证书快到期了,已经申请了新的证书,必需要今天更换。中午OP直接在线上更换了,而后,Android APP接口全线挂掉,iOS却没问题…&hellip

https证书链校验失败

https证书链校验失败

https url in browser

好容易线上运行稳固了连个月了。

今天上午忽然说 https 证书快到期了,已经申请了新的证书,必需要今天更换。

中午OP直接在线上更换了,而后,Android APP接口全线挂掉,iOS却没问题……

原来Android上,在APP内置了证书进行校验,现在更换了服务器证书,导致Android校验失败;果然是做的越多, 越容易出事。

除了native接口挂掉(native请求的是 api.we.com 域名),webview请求的 m.we.com 页面也挂掉了,显示白屏,然而问了Android开发同学,并没有对 webview 的 https 证书校验进行解决。

复现问题

在PC浏览器里访问某个手机端页面(m.we.com),chrome和Safari正常显示,未提醒异常;Firefox 提醒证书错误SEC_ERROR_UNKNOWN_ISSUER,具体信息如下:

因为发布者未知,所以证书不可信。 服务器可可以未发送合适的中间证书。 或者许需要额外的根证书。

在本地Android 6模拟器里,直接使用webview加载上述的URL,复现了APP里的问题,白屏,并且有如下报错信息:

Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found

看来 m.we.com 的证书的确有问题!

定位问题

通过Google上述的错误关键字,找到了这两篇文章,很有帮助: ;

按照 stackoverflow 里说的,通过 openssl 进行诊断,在命令行执行如下:

openssl s_client -debug -connect m.we.com:443

显示异常信息:

---

Certificate chain

0 s:/businessCategory=Private Organization/serialNumber=911101080573384678/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Beijing/C=CN/ST=\\xE5\\x8C\\x97\\xE4\\xBA\\xAC/L=\\xE5\\x8C\\x97\\xE4\\xBA\\xAC/OU=\\xE8\\xBF\\x90\\xE7\\xBB\\xB4\\xE9\\x83\\xA8/O=\\xE5\\x8C\\x97\\xE4\\xBA\\xAC\\xE5\\xBE\\xAE\\xE8\\xB4\\xA2\\xE7\\xA7\\x91\\xE6\\x8A\\x80\\xE6\\x9C\\x89\\xE9\\x99\\x90\\xE5\\x85\\xAC\\xE5\\x8F\\xB8/CN=m.we.com

i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Extended Validation CA - SHA256 - G3

---

应该是 https证书链 有问题,并没有一直指向某个 根证书

修复问题

和OP同学确认了,的确https证书有问题,重新更换了证书之后,再次执行:

openssl s_client -debug -connect m.we.com:443

这次输出的 https证书链 信息如下:

---

Certificate chain

0 s:/businessCategory=Private Organization/serialNumber=911101080573384678/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Beijing/C=CN/ST=\\xE5\\x8C\\x97\\xE4\\xBA\\xAC/L=\\xE5\\x8C\\x97\\xE4\\xBA\\xAC/OU=\\xE8\\xBF\\x90\\xE7\\xBB\\xB4\\xE9\\x83\\xA8/O=\\xE5\\x8C\\x97\\xE4\\xBA\\xAC\\xE5\\xBE\\xAE\\xE8\\xB4\\xA2\\xE7\\xA7\\x91\\xE6\\x8A\\x80\\xE6\\x9C\\x89\\xE9\\x99\\x90\\xE5\\x85\\xAC\\xE5\\x8F\\xB8/CN=api.we.com

i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Extended Validation CA - SHA256 - G3

1 s:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Extended Validation CA - SHA256 - G3

i:/OU=GlobalSign Root CA - R3/O=GlobalSign/CN=GlobalSign

---

能看出,这次证书链最终指向到了 GlobalSign 这个根CA。

刷新Android webview,页面正常显示,OK了。

相关链接

https://support.mozilla.org/zh-CN/kb/%E9%94%99%E8%AF%AF%E7%A0%81sec_error_unknown_issuer%E7%9A%84%E6%95%85%E9%9A%9C%E6%8E%92%E9%99%A4?as=u&utm_source=inproduct

https://juejin.im/entry/5681e5cd00b01b9f2bd6d9e8

https://stackoverflow.com/a/16302527/2583885

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】你是HTML 5的一员吗?(2019-08-15 11:58)
【系统环境|】Web前端基础怎么学?html、css、JavaScript 知识架构图(2019-08-14 17:55)
【系统环境|】零基础小白走Web前端之路是否可行?答案是yes!(2019-08-13 11:44)
【系统环境|】你知道Web前端与HTML5技术的区别吗?(2019-08-12 14:10)
【系统环境|】移动前端开发和web前端开发的区别(2019-08-11 16:49)
【系统环境|】给新手的锦囊:Web前端开发小白的学习建议和路线图(2019-08-10 16:34)
【系统环境|】都说web前端开发薪资高,入行就有上万月薪,转行难吗?(2019-08-09 14:55)
【系统环境|】干货教程 | Web前端开发学习入门指南(2019-08-08 18:27)
【系统环境|】前端开发:vue路由之前端路由的原理(2019-08-07 13:17)
【系统环境|】你不知道的web前端那些事(2019-08-06 12:29)
手机二维码手机访问领取大礼包
返回顶部