一次更新SSL证书引发的事故

        记一次因为更新证书导致Adroid应用无法访问接口的事故,问题的出现很怪异,正常情况证书到期购买新的证书配到nginx就可以解决问题,但是这次到期购买证书配上之后Android应用始终无法访问接口,网页和ios应用却可以正常访问。

        这时在Android程序里访问接口却一直报异常:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found。

        首先测试Android APP访问其他的https接口,因为之前一个类似的项目就拿来测试了,发现可以正常访问,这时怀疑是证书的问题,然后联系证书提供方,他们那边经过各种测试说证书没有问题,我们自己也在网上找了几个证书测试的网站,测试后基本的结论都是证书没有问题。

        这时就开始怀疑是服务器的安全策略或者防火墙是不是限制了Adroid设备的https访问,经过业主的一番折腾,后台用一套干净的服务器部服务还是问题依旧,这时几乎陷入了僵局,服务器没问题,证书没问题,程序没问题,简直无解了,APP还是无法正常访问接口,这时距离问题的出现过去了已经两天,用户急得哇哇叫~~~~~~

        这时一位高人出现了,他说可能是证书的链路太多,一语惊醒梦中人啊,感觉他说这个很在理于是迅速展开了测试和验证,果然迅速解决了问题,在此对这位不认识的业主方朋友表示非常非常的感谢,要不问题的解决估计还要拖一段时间了~~~~~~

问题的测试验证过程

        首先查看能正常访问的证书和出现异常的证书链路,发现确实不能访问的https证书链路多一级。

        

这就是新证书和老证书的区别,右侧为新证书,多了一级链路。

        这时首先的想法是能不能更改证书变成2级链路,咨询了证书提供商后说可以删除最后一级试试,简直不要太好,马上干~~~

        如上图所示,证书就长这样,去掉最后红框一部分后,重启nginx,问题马上解决,真是喜大普奔,问题出现这么长时间,总算找到了地方。

        回到程序中,之前的程序证书验证时走的下面的程序,只验证了两级,所以一直通不过。

 现在增加一级判断,程序立马可以访问了。

        至此,问题圆满解决,Android Trust anchor for certification path not found,问题原因有很多,百度一下一大堆,但是好像没发现有此经历的文章;记录一下,也给同样受此问题困扰的小伙伴一个解决问题的途径。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值