Android Okhttp请求https配置信任证书
·
okhttp请求https配置证书
/**
* 配置https证书
*
* @return
*/
public SSLSocketFactory getSSLSocketFactory() {
try {
CertificateFactory cf;
cf = CertificateFactory.getInstance("X.509");
Certificate ca;
InputStream caInput = new BufferedInputStream(getAssets().open("xxxx.crt"));//此处配置https证书
ca = cf.generateCertificate(caInput);
caInput.close();
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tmf.getTrustManagers(), null);
return sslContext.getSocketFactory();
} catch (Exception e) {
return null;
}
}
调用
mOkHttpClient.setSslSocketFactory(MyApplication.getInstance().getSSLSocketFactory());//配置https证书
mOkHttpClient.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
});
更多推荐
所有评论(0)