gpt4 book ai didi

java - Android 2.2 版本的 SSL 握手失败

转载 作者:行者123 更新时间:2023-11-30 04:20:29 25 4
gpt4 key购买 nike

我正在开发一个需要服务器证书验证的应用程序。它在 Android 2.3 及更高版本上运行良好,但对于 Android 2.2,它给了我一个异常(exception):

W/System.err( 2116): java.io.IOException: SSL handshake failure: Failure in SSL library, usually a protocol error
W/System.err( 2116): error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure (external/openssl/ssl/s3_pkt.c:1053 0x3a5208:0x00000003)
W/System.err( 2116): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.nativeconnect(Native Method)
W/System.err( 2116): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:305)
W/System.err( 2116): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.<init>(OpenSSLSocketImpl.java:502)
W/System.err( 2116): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:443)

当设备尝试从 SSLSocket 检索 InputStream 时,此错误来自 BufferedInputStream。代码如下:

BufferedInputStream getSocketReader() throws IOException {
BufferedInputStream bis = new BufferedInputStream(sslSocket.getInputStream(), 32768);
return bis;
}

这是我当前的 createEasySSLContext() 方法代码:

private static SSLContext createEasySSLContext() throws IOException {
try {
SSLContext context = SSLContext.getInstance("TLS");
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(sampleKeystore, "password".toCharArray());

CustomX509TrustManager trustManager = new CustomX509TrustManager(null);
context.init(keyManagerFactory.getKeyManagers(), new TrustManager[]{trustManager}, null);
return context;
} catch (Exception e) {
throw new IOException(e.getMessage());
}
}

这是怎么回事?我可以在不失去 Android 2.2 支持的情况下修复它吗?谢谢。

最佳答案

很有可能颁发您的服务器证书的 CA 不受 Android 2.1 信任。要么获取一个新证书,要么创建一个包含 CA 证书的信任库并设置您的代码以使用它。

更多信息和一些示例代码 here .

关于java - Android 2.2 版本的 SSL 握手失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9328699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com