Dépannage de l'erreur "java.security.cert.CertificateException : aucun nom alternatif de sujet présent" en Java
Lors de la connexion à un service Web HTTPS à l'aide d'un client Java, rencontrer l'exception « java.security.cert.CertificateException : aucun nom alternatif de sujet présent » peut être frustrant. Voici comment résoudre ce problème :
Vérification des informations du certificat
Pour obtenir les détails du certificat du serveur, utilisez la commande "openssl s_client -showcerts -connect AAA.BBB.CCC .DDD:9443 >certs.txt." Le fichier résultant "certs.txt" contient :
Solution alternative
Concernant l'étape 1 de la solution proposée :
Concernant l'étape 2 du Solution proposée :
Approche recommandée
Considérez les alternatives suivantes :
// In the ISomeService class: static { disableSslVerification(); } private static void disableSslVerification() { // ... [Code to disable HTTPS checks as described in the provided answer] }
// In the ISomeService class: HostnameVerifier customVerifier = new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { // Perform custom hostname verification, such as accepting the IP address (AAA.BBB.CCC.DDD). return true; } }; HttpsURLConnection httpsConn = (HttpsURLConnection) url.openConnection(); httpsConn.setHostnameVerifier(customVerifier);
Attention : La désactivation des vérifications HTTPS ou la mise en œuvre d'un vérificateur de nom d'hôte personnalisé peut compromettre la sécurité. Utilisez ces approches uniquement pour des tests ou dans des environnements contrôlés.
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!