1、将服务器生成的.cer文件放在 assets目录下
2、直接看代码(放在工具类,在请求的地方直接调用即可)
public Context context;
public static void getCA(Context context){
try {
//获取证书
InputStream stream = context.getAssets().open("_.re-buy.cn.cer");
SSLContext tls = SSLContext.getInstance("TLS");
//使用默认证书
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
//去掉系统默认证书
keystore.load(null);
Certificate certificate = CertificateFactory.getInstance("X.509").generateCertificate(stream);
//设置自己的证书
keystore.setCertificateEntry("_.re-buy.cn", certificate);
//通过信任管理器获取一个默认的算法
String algorithm = TrustManagerFactory.getDefaultAlgorithm();
//算法工厂创建
TrustManagerFactory instance = TrustManagerFactory.getInstance(algorithm);
instance.init(keystore);
tls.init(null, instance.getTrustManagers(), null);
SSLSocketFactory socketFactory = tls.getSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(socketFactory);
HttpsURLConnection.setDefaultHostnameVerifier(hv);
}catch(Exception e){
e.printStackTrace();
}
}
private static HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
return true;
}
};