在我们的一个应用程序部署期间出现异常情况. iOS版本运行良好,但Android版本的应用程序不起作用.经过一些故障排除后,我们发现app会调用api. Api Web服务器缺少证书链.我们尝试使用safari在iOS8 iphone上进行api调用,它在没有任何警告的情况下工作,而在android上,它提供了证书警告.我理解这个问题,但想知道为什么它在iOS上运行? iOS在操作系统级别的SSL验证中是否有任何错误?
解决方法:
您看到的行为是由于某个浏览器和用户代理(包括iOS上的Safari)实现的称为AIA追逐的功能.证书可以具有Authority Information Access extension的值,浏览器或底层框架可以使用它来通过获取服务器提供的中间件来构建完整的证书链.
Android不会进行AIA追逐,这就是您从Android应用调用API时看到错误的原因.我一直无法找到为什么它没有内置到Android中.