J'essaie de me connecter à une API Web Java via HTTPS, mais une exception est levée :
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
J'ai suivi ces étapes que j'ai apprises dans des tutoriels en ligne sur les outils de gestion des clés et les certificats SSL :
-
J'ai copié l'URL HTTPS dans le navigateur, téléchargé les certificats SSL et les ai installés dans le navigateur en utilisant Internet Explorer.
-
J'ai exporté les certificats vers un chemin d'accès sur mon ordinateur, les certificats ont été sauvegardés sous le nom de
.cer
-
J'ai utilisé l'option d'importation de Keytool. La commande ci-dessous s'est exécutée sans aucune erreur.
keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
-
On m'a demandé un mot de passe à l'invite de commande, que j'ai saisi puis j'ai été authentifié.
-
Le site
cmd
La fenêtre a imprimé des données et des signatures de certificats et la question suivante m'a été posée :Faites-vous confiance à ce certificat ?
J'ai répondu oui.
-
L'invite cmd s'est affichée
Le certificat a été ajouté au keystore
Cependant, après ce message, une autre exception s'est affichée :
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
Enfin, lorsque j'ai vérifié le keystore, le certificat SSL n'a pas été ajouté et mon application donne la même exception que celle que j'ai eue précédemment en essayant de me connecter :
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)