Maison > Java > javaDidacticiel > Comment gérer les certificats SSL auto-signés ou expirés en Java ?

Comment gérer les certificats SSL auto-signés ou expirés en Java ?

Susan Sarandon
Libérer: 2025-01-01 10:15:11
original
997 Les gens l'ont consulté

How to Handle Self-Signed or Expired SSL Certificates in Java?

Remplacement de la validation des certificats SSL dans les clients Java

Lors de la connexion à des serveurs avec des certificats SSL auto-signés ou expirés, le comportement Java par défaut est de rejeter la connexion. Pour autoriser de telles connexions, vous disposez de deux options principales :

Option 1 : Ajouter le certificat au Truststore

Cela implique d'établir une chaîne de confiance en important le certificat du serveur dans le truststore de la 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 du certificat Validation

Cette approche n'est pas recommandée car elle affaiblit la sécurité, mais elle peut être effectuée à l'aide du code suivant :

// Create a trust manager that doesn't validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
        public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
        public void checkClientTrusted(X509Certificate[] certs, String authType) {}
        public void checkServerTrusted(X509Certificate[] certs, String authType) {}
    }
};

// Install the all-trusting trust manager
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

// Access the HTTPS URL without certificate validation
URL url = new URL("https://hostname/index.html");
Copier après la connexion

Recommandation

Pour une sécurité renforcée, il est fortement conseillé d'éviter de désactiver la validation du certificat (option 2) et d'utiliser plutôt une autorité de certification réputée pour signer le certificat de votre serveur (ou importer le certificat auto-signé dans le truststore).

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