Lors d'une tentative de connexion à un serveur avec un certificat SSL auto-signé ou expiré , les clients Java peuvent rencontrer une erreur indiquant un chemin de certification non valide. Cette erreur peut être résolue en établissant une chaîne de confiance ou en désactivant la validation du certificat.
Utiliser Linux Bash :
Exporter le certificat du serveur vers un fichier :
openssl s_client -connect server:port -showcerts > server.cer
Importez le certificat dans le truststore JVM :
keytool -import -v -trustcacerts -alias server-alias -file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit
Utiliser Java Code :
Créez un gestionnaire de confiance qui autorise tous les certificats en remplaçant les méthodes de validation :
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { ... (overridden methods here) } };
Installez le gestionnaire de confiance et définissez-le comme valeur par défaut pour SSL connexions :
SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
Il est fortement recommandé d'utiliser l'option 1, car elle établit une chaîne de confiance plutôt que de désactiver la validation des certificats. Cela garantit que l'identité du serveur peut être vérifiée et que les attaques de l'homme du milieu sont atténuées.
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!