2013-02-26 5 views
18

J'ai un magasin de clés jks sans mot de passe. Quand je lance la commandeModification du mot de passe du magasin de clés sans mot de passe pour un mot de passe non vide

keytool -list -keystore mykeystore.jks 

Et il me demande le mot de passe keystore, je frappe simplement « entrer ».

Veuillez noter que le mot de passe du keystore N'EST PAS le mot de passe java par défaut de 'changeit'. Il est vide

Lorsque je tente de lancer

keytool -storepasswd -keystore mykeystore.jks 

pour changer le mot de passe à une chaîne non vide. Cela m'indique le mot de passe actuel. frapper simplement entrer car il est vide dit

keytool -storepasswd -keystore mykeystore.jks 
Enter keystore password: 
Keystore password is too short - must be at least 6 characters 

Juste pour confirmer avec tout le monde que le mot de passe est « changeit »

keytool -storepasswd -keystore mykeystore.jks 
Enter keystore password: changeit 
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect 

Toute idée comment je peux changer le mot de passe keystore si le mot de passe existant est vide ?

Répondre

20

Ajoutez -storepass aux arguments keytool.

keytool -storepasswd -storepass '' -keystore mykeystore.jks 

Notez également que la commande -list ne nécessite pas toujours un mot de passe. Je pourrais exécuter la commande de suivi dans les deux cas: sans mot de passe ou mot de passe valide

$JAVA_HOME/bin/keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts 
+3

Merci pour votre réponse. Le mot de passe n'était en effet pas vide! Je ne le savais pas à propos de la commande -list ne nécessitant pas de mot de passe. –

+19

Cela ne fonctionne pas pour moi 'keytool -storepasswd -storepass' '-keystore mykeystore.jks' = erreur keytool: java.io.IOException: Keystore a été falsifié, ou le mot de passe était incorrect – theMarceloR

19

Si vous essayez de faire des choses avec le système par défaut Java keystore (cacerts), le mot de passe par défaut est changeit.

Vous pouvez répertorier les clés sans avoir besoin du mot de passe (même si cela vous est demandé). Ne prenez donc pas cela comme une indication qu'il est vide.

(Soit dit en passant, qui dans l'histoire de Java n'a jamais changé le mot de passe keystore par défaut? Ils auraient dû laisser le champ vide.)

+0

"Vous pouvez lister les clés sans avoir besoin du mot de passe "sauvé ma journée :) Je trouve que nous pouvons toujours lire le' Certificate Entry' de n'importe quel fichier 'keystore' sans entrer le mot de passe keystore –

Questions connexes