我集成了节点js打开SSL(不安全)https服务在我的Android应用程序中。但它不起作用。如果我第一次集成在Web应用程序中它显示错误消息“您的连接不安全”然后提前设置我允许然后它正在工作,但在Android应用程序中它抛出相同的异常。如何解决这个问题。
在这下面调用trustCert()方法 -
httpsURLConnection.setSSLSocketFactory(trustCert().getSocketFactory());
private SSLContext trustCert()throws CertificateException,
IOException,KeyStoreException,
NoSuchAlgorithmException,KeyManagementException{
AssetManager assetManager=getAssets();
CertificateFactory cf=CertificateFactory.getInstance("X.509");
Certificate ca=cf.generateCertificate(assetManager.open("fileName.crt"));
// Create a KeyStore containing our trusted CAs
String keyStoreType=KeyStore.getDefaultType();
KeyStore keyStore=KeyStore.getInstance(keyStoreType);
keyStore.load(null,null);
keyStore.setCertificateEntry("ca",ca);
// Create a TrustManager that trusts the CAs in our KeyStore
String tmfAlgorithm=TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf=TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);
// Create an SSLContext that uses our TrustManager
SSLContext context=SSLContext.getInstance("TLS");
context.init(null,tmf.getTrustManagers(),null);
return context;
}