Client Java gérant les certificats SSL auto-signés
Lorsqu'un client Java rencontre une connexion SSL à un serveur avec un certificat auto-signé, il peut échouer avec une erreur telle que :
sun.security.validator.ValidatorException: PKIX path building failed
Option 1 : Ajout à Truststore
Pour établir la confiance, ajoutez le certificat auto-signé au truststore JVM :
<JAVA_HOME>/bin/keytool -import -v -trustcacerts \ -alias server-alias -file server.cer \ -keystore cacerts.jks -keypass changeit \ -storepass changeit
Option 2 : Désactivation de la validation du certificat (non recommandé)
Désactivez la validation du certificat avec le code suivant :
// Trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] certs, String authType) {} @Override public void checkServerTrusted(X509Certificate[] certs, String authType) {} @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } } }; // Install trust manager SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
Cependant, la désactivation la validation du certificat n'est pas recommandée car elle laisse le client vulnérable aux attaques de l'homme du milieu.
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!