Maison >Java >javaDidacticiel >Comment un client Java peut-il gérer les certificats SSL auto-signés ?

Comment un client Java peut-il gérer les certificats SSL auto-signés ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 13:17:09346parcourir

How Can a Java Client Handle Self-Signed SSL Certificates?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn