9
私はすでにリーフ証明書を自分のプロジェクトに実装しています。うまくいきます。私のサーバーで1年後に葉の証明書が期限切れになるので、葉の証明書を有効にして、有効期限が切れたときに中間証明書を使えるようにするという問題がありますか?Androidでリーフ/中間証明書のピニングを実装する方法は?
中間証明書を実装する例はありますか?
私を助けてください!
コード: -
SSLContext sslContext = null;
try {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream caInput = context.getResources().openRawResource(certRawRef);
Certificate ca;
try {
ca = cf.generateCertificate(caInput);
} finally {
caInput.close();
}
// 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 = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, tmf.getTrustManagers(), null);
return sslContext;
} catch (Exception e) {
Log.e("EXCEPTION",e.toString());
//Print here right certificate failure issue
}
この記事はあなたを助けるかもしれない...のhttps://medium.com/@appmattus/android-security- ssl-pinning-1db8acb6621e – PN10