我正在开发 iPhone/Android 应用程序。有一天,我注意到其中一部 Android 手机拒绝向存在证书问题的服务器执行 http 请求。响应正文很简单,“不可信的服务器证书”。我在一些文章中看到过这个错误信息。问题是,这只会发生在一些 Android 手机上,而不是所有手机上。所以我想知道:
- 这是可以在手机上打开和关闭的用户首选项(类似于“拒绝与有证书问题的服务器通话”之类的东西)吗?如果是这样,我在哪里可以找到它?它是默认打开还是关闭?
- 如果这只是在某些 Android 手机上强制执行的功能,那么市场上有多少百分比的 Android 手机具有此功能?
最佳答案
据我所知,在任何 Android 版本中都没有针对您所要求的设置。我希望大多数应用程序使用默认的 HTTPS 处理程序。
不受信任的服务器证书可能是该证书不在该设备的 keystore 中。如果使用 Apache HttpClient 而不是 HTTPUrlConnection,则可能会以不同方式处理此错误。可能是系统只是拒绝连接,因为它无法验证服务器的有效性。
不同的android版本在keystore中有不同的证书。似乎随着 android 版本的发布,最新的证书被放入该版本的 keystore 中。它可能是较早版本的 android 没有您要查找的证书。
大多数 android 设备 (~45%) 运行的 Gingerbread (android 2.3) 具有较旧的证书列表。紧随其后的是较新的 android 4.0(ice cream 及更高版本),它具有更简单的方法来下载和安装服务器证书。
关于android - 需要有关 Android 上的 "Not trusted server certificate"错误的更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14214376/