android - iOS 允许无效证书,而 android 不允许

标签 android ios iphone security ssl

在我们的一个应用程序部署过程中遇到了异常情况。 iOS 版本运行良好,但 Android 版本的应用程序无法运行。经过一番排查后,我们发现应用程序调用了 api。 API Web 服务器缺少证书链。我们尝试使用 safari 在 iOS8 iPhone 上调用 api,它可以在没有任何警告的情况下工作,而在 Android 上,它会给出证书警告。我理解这个问题,但想知道为什么它在 iOS 上有效? iOS 在操作系统级别的 SSL 验证方面是否存在任何错误?

最佳答案

您看到的行为是由某些浏览器和用户代理(包括 iOS 上的 Safari)实现的称为 AIA 追逐的功能引起的。证书的值可以是 Authority Information Access extension浏览器或底层框架可以使用它们通过获取中间体(如果服务器未提供中间体)来构建完整的证书链。

Android 不执行 AIA 追踪,这就是您在从 Android 应用程序调用 API 时看到错误的原因。我一直无法找出为什么 Android 中没有内置此功能。

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

关于android - iOS 允许无效证书,而 android 不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33222877/

相关文章:

ios - 了解保留计数以及在其中访问 self 的 block 。

ios - Xcode - 在同一个图像中拖了两次,它被列出了两次,为什么?删除其中一张图片有风险吗?

ios - 如何在 iOS5 上复制 CIDarkenBlendMode

iphone - Finch音频引擎未打开默认的OpenAL设备

android - 开始自动下载

ios - 在 Swift 中,当方向发生时如何查看 TableView 的相同单元格?

ios - 弄错时差

android - JSON 解析返回空值

android - 创建位图时出现内存不足异常

android - 如何用jsoup解析简单的html代码?安卓