iOS 允许无效证书,而 android 不允许
Posted
技术标签:
【中文标题】iOS 允许无效证书,而 android 不允许【英文标题】:iOS allowed invalid certificate while android did not 【发布时间】:2016-01-18 07:11:21 【问题描述】:在我们的一个应用部署过程中遇到了不寻常的情况。 ios 版本运行良好,但应用程序的 android 版本无法运行。经过一些故障排除后,我们发现该应用程序调用了api。 Api Web 服务器缺少证书链。我们在带有 safari 的 iOS8 iphone 上尝试了 api 调用,它在 android 上运行时没有任何警告,它给出了证书警告。我理解这个问题,但想知道为什么它在 iOS 上有效? iOS 在 OS 层面的 SSL 验证是否存在 bug?
【问题讨论】:
【参考方案1】:您看到的行为是由于某些浏览器和用户代理(包括 iOS 上的 Safari)实现的称为 AIA 追逐的功能。证书可以具有 Authority Information Access extension 的值,浏览器或底层框架可以使用该值通过获取中间体(如果服务器未提供中间体)来构建完整的证书链。
Android 不执行 AIA 追踪,这就是您在从 Android 应用调用 API 时看到错误的原因。我一直无法找出为什么它没有内置在 Android 中。
解决此问题的正确方法是确保 Web 服务器为连接的客户端提供必要的中间证书。
【讨论】:
以上是关于iOS 允许无效证书,而 android 不允许的主要内容,如果未能解决你的问题,请参考以下文章