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
Libérer: 2024-12-19 13:17:09
original
334 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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());
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal