Android L - 没有对等证书

Posted

技术标签:

【中文标题】Android L - 没有对等证书【英文标题】:Android L - No peer certificate 【发布时间】:2014-10-15 17:19:42 【问题描述】:

我开发了一个小应用程序,它使用带有自签名证书的 SSL 连接到我的服务器。为了使它工作,我使用 BouncyCastleProvider 将我的证书加载到自定义密钥库中,并将证书导入到我的自定义 SSLSocketFactory 中。 Everythink 从 android 2.3(最低 sdk)到 4.4.4 都很好用。但是在 android L (Preview) 中,我的应用程序失败了:

2014 年 8 月 12 日星期二 14:34:40 BRT : javax.net.ssl.SSLPeerUnverifiedException:没有对等证书 com.android.org.conscrypt.SSLNullSession.getPeerCertificates(SSLNullSession.java:104) 在 org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93) 在 org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:388) 在 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165) 在 org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 在 org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 在 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) ....

我完全不知道如何解决它。 任何帮助将不胜感激。

【问题讨论】:

嗨。您是否设法找到解决方案。我在使用 Android L 时遇到了同样的问题。 你能在这里发布这个问题的解决方案吗? 【参考方案1】:

只是为了让您知道我们如何在项目中解决此问题。也许这可以帮助任何人。

我们的应用基于 ion 和 AndroidAsync 网络库,其中存在以下错误: https://github.com/koush/AndroidAsync/issues/187

更新到最新版本 (1.4.0) 为我们修复了 Android L 上的“无对等证书”问题。

【讨论】:

以上是关于Android L - 没有对等证书的主要内容,如果未能解决你的问题,请参考以下文章

android中的https(无对等证书)问题

Android SSL HttpGet(无对等证书)错误或(对等连接已关闭)错误

Android:对于套接字,传递“对等方的证书与预期的主机名不匹配”错误的最安全方法?

与服务提供商的通信失败:Twitter 中没有对等证书

如何在Android上进行SSL对等验证工作?

Curl 中出现错误 - 对等证书无法使用已知 CA 证书进行身份验证