【问题标题】:SSLProtocolException making a https connectionSSLProtocolException 建立 https 连接
【发布时间】:2011-04-06 15:57:46
【问题描述】:

当我与我的网络服务器建立 https 连接时,我遇到了 SSLProtocolException。我只有在 Android 2.3 Gingebread 中有这个例外;相同的代码在所有其他 Android 版本中都可以正常工作。这个安卓版本有问题吗?

我还向 Google 提交了错误报告:http://code.google.com/p/android/issues/detail?id=16121&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

我附上了例外:

WARN/System.err(6218): javax.net.ssl.SSLProtocolException: 读取错误: ssl=0x3c97e8: SSL 库失败,通常是协议错误 WARN/System.err(6218):在 org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(本机方法) WARN/System.err(6218):在 org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:788) WARN/System.err(6218):在 org.apache.harmony.luni.internal.net.www.protocol.http.FixedLengthInputStream.read(FixedLengthInputStream.java:44) WARN/System.err(6218):在 java.io.BufferedInputStream.read(BufferedInputStream.java:319) WARN/System.err(6218):在 android.os.Handler.dispatchMessage(Handler.java:99) WARN/System.err(6218): 在 android.os.Looper.loop(Looper.java:123) WARN/System.err(6218): 在 android.os.HandlerThread.run(HandlerThread.java:60)

【问题讨论】:

  • 目前似乎没有太多关于此问题的信息。我建议用谷歌打开一个错误。请参阅此 SO 问题以了解看起来相同的问题:stackoverflow.com/questions/5070512/…
  • 同意,您不是第一个在 Android 2.3.3 上获得此功能的人,这可能是操作系统的回归,因此除了删除对 Android 2.3 的支持外,我们可能无能为力AndroidManifest.xml 中的 .3(API 级别 10)。
  • 谢谢,您的 cmets 非常有用。
  • 似乎使缓冲区大小为 4k 有效?如果这与其他问题相似。有代码吗?
  • stackoverflow.com/questions/6852492/… 的副本?参考相同的 Android 错误 #16121。均未提供示例代码进行确认。

标签: android ssl


【解决方案1】:

尝试使用SSLSocketFactory 直接从套接字读取。我在这里发布了一个带有注释代码的测试用例:SSLProtocolException when reading https responses on Android 2.3.3 devices

【讨论】:

    【解决方案2】:

    检查服务器是否需要客户端身份验证。在我的情况下,在 tomcat server.xml clientAuth="true" 中,所以有错误所以我将其更改为 false。

    【讨论】:

      猜你喜欢
      • 2013-02-28
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 2022-04-25
      • 1970-01-01
      相关资源
      最近更新 更多