Lorsque vous tentez d'établir une connexion à un site Web à l'aide d'un certificat signé, les applications Java peuvent rencontrer des erreurs dues à des échecs de vérification du certificat. Cet article présente des solutions pour résoudre ce problème tout en respectant des exigences spécifiques.
L'approche recommandée consiste à créer une SSLSocketFactory personnalisée qui inclut le certificat auto-signé de confiance. Cela permet à l'application de faire confiance de manière sélective au certificat pour une connexion spécifique. Voici comment l'implémenter :
Chargez le KeyStore contenant le certificat auto-signé :
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(trustStore, trustStorePassword); trustStore.close();
Créez une TrustManagerFactory pour initialiser TrustManagers :
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(keyStore);
Initialisez un SSLContext et obtenez le SSLSocketFactory :
SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, tmf.getTrustManagers(), null); sslFactory = ctx.getSocketFactory();
Configurez la connexion HttpsURL avec le SSLSocketFactory :
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); conn.setSSLSocketFactory(sslFactory);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!