iOS允许无效证书,而android则没有

在我们的一个应用程序部署期间出现异常情况. 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中.

解决此问题的正确方法是确保Web服务器为连接客户端提供必要的中间证书.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...