मैंने पहले से ही अपने प्रोजेक्ट में लीफ सर्टिफिकेट लागू किया है, यह ठीक काम कर रहा है। कृपया नीचे दिए गए कोड की जांच करें, अब समस्या यह है कि मेरे सर्वर में एक साल बाद लीफ सर्टिफिकेट समाप्त हो जाएगा, इसलिए मैं पत्ती प्रमाण पत्र को सत्यापित करना चाहता हूं ताकि जब यह समाप्त हो जाए/अमान्य हो तो मैं इंटरमीडिएट सर्टिफिकेट का उपयोग कर सकता हूं?एंड्रॉइड में पिनिंग/इंटरमीडिएट सर्टिफिकेट पिनिंग को कैसे कार्यान्वित करें?
क्या मध्यवर्ती प्रमाणपत्र लागू करने के लिए कोई उदाहरण है?
कृपया मेरी मदद करें!
कोड: -
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- एसएसएल-पिन-1db8acb6621e – PN10