112 votes

Erreur Java Keytool après l'importation du certificat, "keytool error : java.io.FileNotFoundException & Access Denied" (erreur Keytool : java.io.FileNotFoundException & Accès refusé

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 :

  1. 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.

  2. 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

  3. 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
  4. On m'a demandé un mot de passe à l'invite de commande, que j'ai saisi puis j'ai été authentifié.

  5. 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.

  6. 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)

243voto

Sharan Rajendran Points 512

Cela peut se produire si vous n'exécutez pas l'invite de commande en mode administrateur. Si vous utilisez Windows 7, vous pouvez aller dans Exécuter, taper cmd et appuyer sur Ctrl+Shift+Entrée. Cela ouvrira l'invite de commande en mode administrateur. Si ce n'est pas le cas, vous pouvez également aller dans Démarrer -> Tous les programmes -> Accessoires -> Clic droit sur l'invite de commande et dire Exécuter en tant qu'administrateur.

36voto

J'ai eu le même problème en important le certificat dans le keystore local. Chaque fois que je lance la commande keytool, j'obtiens l'erreur suivante.

Le certificat a été ajouté au keystore erreur keytool : java.io.FileNotFoundException : C:\Program Fichiers \Java\jdk1.8.0_151\jre\lib\security (L'accès est refusé)

La solution suivante fonctionne pour moi.

1) Assurez-vous que vous exécutez l'invite de commande dans Rus en mode administrateur.

2) Changez votre répertoire actuel en %JAVA_HOME%. \jre\lib\security

3) Ensuite, tapez la commande suivante

keytool -import -alias "mycertificatedemo" -file " C:\Users\name\Downloads\abc.crt "-keystore cacerts

3) donnez le mot de passe changeit

4) entrer y

5) vous verrez le message suivant en cas de succès "Le certificat a été ajouté au keystore"

Assurez-vous que vous donnez le " cacerts "seulement dans la valeur du paramètre -keystore, car je donnais le chemin complet comme "C** : \Program Fichiers \Java\jdk1.8.0_151\jre\lib\security **".

J'espère que cela fonctionnera

19voto

daniel Points 121

J'ai eu le même problème sous Windows et j'ai pu le résoudre en exécuter cmd.exe en tant qu'administrateur (clic droit dans le menu de démarrage, puis "Exécuter en tant qu'administrateur").

10voto

partha saradhi Points 21

Vérifiez les droits d'écriture sur le keystore.

7voto

V K Points 81

Pour les utilisateurs de Mac, assurez-vous d'utiliser sudo et, lorsque vous y êtes invité, donnez d'abord votre mot de passe d'administrateur, puis le mot de passe du keystore, qui devrait être "changeit", à moins que vous ne l'ayez changé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X