Java 在Android中使用HTTPS连接服务器
我正在做一个应用程序来连接HTTPS服务器。我读了很多教程,但我没有一个理想的解决方案 在服务器中,我有一个自签名证书。在客户部分我要做什么?我阅读了官方教程:但如果我加载相同的证书应用程序,则会崩溃,出现以下异常Java 在Android中使用HTTPS连接服务器,java,android,https,Java,Android,Https,我正在做一个应用程序来连接HTTPS服务器。我读了很多教程,但我没有一个理想的解决方案 在服务器中,我有一个自签名证书。在客户部分我要做什么?我阅读了官方教程:但如果我加载相同的证书应用程序,则会崩溃,出现以下异常javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidator异常:找不到证书路径的信任锚。 一些想法或例子 谢谢您需要将其添加到您的请求中 比如说改装 OkHttpClient clie
javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidator异常:找不到证书路径的信任锚。
一些想法或例子
谢谢您需要将其添加到您的请求中 比如说改装
OkHttpClient client = new OkHttpClient();
try {
KeyStore keyStore = readKeyStore(this);
SSLContext sslContext = SSLContext.getInstance("SSL");
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keyStore);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, "keystore_pass".toCharArray());
sslContext.init(keyManagerFactory.getKeyManagers(),trustManagerFactory.getTrustManagers(), new SecureRandom());
client.setSslSocketFactory(sslContext.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
然后
要重新启动adapter.Builder()它的可能副本,可能是您的代码出了问题,请向它表明如果不使用客户端验证,您不必使用
KeyManager
初始化SSLContext
。只需传递空值。您应该使用TLS而不是SSL
.setClient(new OkClient(client))