Comprendre l'erreur « Alerte fatale reçue : handshake_failure via SSLHandshakeException » dans les connexions SSL
L'erreur d'échec de négociation dans les connexions SSL peut survenir en raison de divers facteurs :
Potentiel Causes :
-
Suites de chiffrement incompatibles : Le client et le serveur peuvent ne pas utiliser de suites de chiffrement compatibles, ce qui oblige le client à ajuster ou à en activer une prise en charge par le serveur.
-
Incompatibilité de version : Le serveur et le client peuvent fonctionner avec des versions SSL différentes, conduisant potentiellement à la version inadéquations. Le client doit garantir la compatibilité avec la version du serveur.
-
Chemin de confiance du certificat incomplet : Le client peut ne pas faire confiance au certificat du serveur, car son autorité de certification émettrice est absente du magasin de confiance du client. Pour résoudre ce problème, le certificat CA du serveur doit être importé dans le magasin de confiance.
-
Domaine de certificat incorrect : Le certificat du serveur peut être émis pour un domaine différent de celui auquel vous accédez. Dans ce cas, le serveur doit obtenir le certificat correct.
Débogage de l'échec de la prise de contact :
Pour identifier la cause de l'échec de la prise de contact, activez le débogage SSL en utilisant l'indicateur -Djavax.net.debug=all. Cela fournira un journal détaillé des activités d'établissement de la connexion SSL.
Mise à jour :
Une enquête plus approfondie suggère que le problème provient d'un chemin de confiance de certificat incomplet, où la racine L'autorité de certification du certificat du serveur est absente du magasin de confiance du client. Pour résoudre ce problème, le certificat CA doit être importé dans le magasin de confiance utilisé par la JVM, généralement le fichier cacerts.
Comprendre la sortie de trace JSSE :
Le JSSE trace fournit des informations sur les keystores, les truststores et le processus de prise de contact :
-
Keystores et Truststores : Ceux-ci sont répertoriés au début de la trace, indiquant les emplacements et les types du keystore et des truststores utilisés.
-
Certificats de confiance : La trace comprend une section qui répertorie les certificats de confiance dans le magasin de confiance. Si l'autorité de certification du serveur n'est pas répertoriée, cela peut être la source du problème du chemin de confiance.
-
Étapes de prise de contact : La trace contiendra des entrées décrivant ClientHello, ServerHello et l'échange de certificats. L'erreur peut être indiquée dans ServerHello, qui spécifie la suite de chiffrement sélectionnée et si le certificat du serveur a été accepté.
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!
Déclaration: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