Correction de l'erreur "java.security.cert.CertificateException : aucun nom alternatif de sujet présent"
Lors de la consommation de services Web via HTTPS à l'aide de Java clients, vous pouvez rencontrer l'erreur « java.security.cert.CertificateException : aucun nom alternatif de sujet présent ». Pour résoudre ce problème, suivez attentivement ces étapes :
-
Obtenez le certificat du serveur : Exécutez la commande openssl s_client -showcerts -connect AAA.BBB.CCC.DDD:9443 > certs.txt pour récupérer le certificat du serveur.
-
Extraire le contenu du certificat : Localisez la section de "certs.txt" entre -----BEGIN CERTIFICATE----- et - ----FIN CERTIFICAT----- et enregistrez-le dans un fichier séparé.
-
Modifier le certificat (Facultatif) : Si nécessaire, mettez à jour le nom du certificat pour qu'il corresponde à l'adresse IP du serveur (AAA.BBB.CCC.DDD). Cependant, la modification du certificat n'est recommandée que si vous contrôlez le serveur.
-
Importer le certificat : utilisez la commande keytool pour importer le certificat modifié dans votre magasin de clés. Par exemple : keytool -importcert -file fileWithModifiedCertificate -keystore mykeystore.
-
Désactiver les vérifications HTTPS (à des fins de test uniquement) : si vous utilisez le service à des fins de test et que vous n'avez pas besoin d'une communication sécurisée, vous pouvez désactiver temporairement les vérifications HTTPS en ajoutant du code à la classe client qui contourne la validation du certificat et la vérification du nom d'hôte. Cette solution n'est pas recommandée pour une utilisation en production.
Vous pouvez également utiliser la suggestion de la question similaire, qui indique que si vous ne contrôlez pas le serveur, vous devez plutôt utiliser son nom d'hôte. En effet, le certificat peut contenir un CN (nom commun) qui correspond au nom d'hôte.
N'oubliez pas que ces étapes sont destinées à résoudre le problème spécifique des noms alternatifs de sujet manquants dans le certificat du serveur. En fonction de votre environnement et du service spécifique que vous utilisez, des variations ou des configurations supplémentaires peuvent être requises.
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!