J'essaye de connecter une API Web Java via HTTPS; cependant, une exception est levée:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
J'ai suivi ces étapes que j'ai apprises grâce aux tutoriels keytool et SSL cert en ligne:
J'ai copié l'URL HTTPS dans le navigateur, téléchargé les certificats SSL et les ai installés dans le navigateur à l'aide d'Internet Explorer.
Exporté les certificats vers un chemin sur mon ordinateur, les certificats ont été enregistrés sous
.cer
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
J'ai été invité à entrer un mot de passe à l'invite de commande, que j'ai entré puis j'ai été authentifié.
La
cmd
fenêtre a imprimé des données et des signatures de certificat et j'ai été invité avec la question:Faites confiance à ce certificat?
J'ai répondu oui.
L'invite cmd affichée
Le certificat a été ajouté au magasin de clés
Cependant, après ce message, une autre exception a été 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 je recevais plus tôt en essayant de me connecter:
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)
keytool
commande exacte que vous avez exécutée, et sa sortie? certains des problèmes évidents ici sont la faute de frappe de l'-keystore
argument et le fait que keytool n'a pas pu trouver le keystore dans lequel importer la clé