1

次のコードを適用して、サーバーから 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 も使用してみましたが、同じ警告が表示されました.プレイストアからこの警告から抜け出すのを手伝ってくれる人はいますか?

4

0 に答える 0