我已应用以下代码来验证服务器的 SSL 证书并使用 HTTPS 安全连接运行应用程序。我的服务器已经拥有由授权 CA 颁发的证书。
以下是我实现的代码片段..
CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream caInput = getResources().openRawResource(R.raw.certificate)
Certificate ca;
try {
ca = cf.generateCertificate(caInput);
System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
} finally {
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 context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
URL url = new URL(webserviceurl);
HttpsURLConnection urlConnection=
urlConnection.setSSLSocketFactory(context.getSocketFactory());
InputStream in = urlConnection.getInputStream();
PlayStore 收到警告
“您的应用在 Apache HTTP 客户端上使用了不安全的 X509TrustManager 接口实现,从而导致了安全漏洞。请参阅此 Google 帮助中心文章了解详细信息,包括修复漏洞的截止日期。”
以前,我也尝试过使用 TRUST MANAGER x509,但产生了同样的警告。任何人都可以帮我摆脱来自 Playstore 的警告吗?