Correction de l'erreur "java.security.cert.CertificateException : aucun nom alternatif de sujet présent"
Dans les clients de services Web Java consommant des services HTTPS , l'erreur « java.security.cert.CertificateException : Aucun nom alternatif de sujet présent » se produit lorsque le certificat ne contient pas de noms alternatifs de sujet. Voici une solution étape par étape :
Pour résoudre ce problème :
-
Récupérez le certificat : Exécutez "openssl s_client -showcerts -connect AAA.BBB .CCC.DDD:9443 > certs.txt" pour obtenir le certificat.
-
Extraire le certificat : Copiez le texte entre "-----BEGIN CERTIFICATE----- " et "-----END CERTIFICATE-----" de certs.txt.
-
Modifiez le certificat : Remplacez le nom du certificat par "AAA.BBB.CCC.DDD " pour correspondre à l'adresse IP.
-
Importer le certificat : Utilisez "keytool -importcert -file fileWithModifiedCertificate" pour importer le certificat modifié.
Alternativement, pour utilisez le nom d'hôte au lieu du certificat :
-
Désactivez la vérification SSL : Ajoutez le code suivant à votre classe ISomeService :
static {
disableSslVerification();
}
private static void disableSslVerification() {
// ... same code as above for disabling SSL verification ...
}
Copier après la connexion
-
Comprenez la signification de « Utiliser » : « Utiliser » fait référence à l'utilisation du nom d'hôte comme identité du serveur, même si le certificat contient un nom différent.
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!