web-dev-qa-db-fra.com

Remplacez le mot de passe keystore par aucun mot de passe par un mot de passe non vide

J'ai un magasin de clés jks sans mot de passe. Quand je lance la commande

keytool -list -keystore mykeystore.jks

Et il me demande le mot de passe du magasin de clés, je clique simplement sur "entrer".

Veuillez noter que le mot de passe du magasin de clés IS PAS la valeur par défaut Java de 'changeit'. Il est vide.)

Quand j'essaye de courir

keytool -storepasswd -keystore mykeystore.jks

pour changer le mot de passe en une chaîne non vide. Il me demande d'abord le mot de passe actuel. En appuyant simplement sur 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 n'est pas 'changeit'

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

Avez-vous une idée de la façon dont je peux changer le mot de passe du magasin de clés si le mot de passe existant est vide?

38
Matthew Kirkley

Ajoutez -storepass aux arguments keytool.

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

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

$Java_HOME/bin/keytool -list -keystore $Java_HOME/jre/lib/security/cacerts
28
ijrandom

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

Vous pouvez lister les clés sans avoir besoin du mot de passe (même si cela vous y invite), ne prenez donc pas cela comme une indication qu'il est vide.

(Incidemment, qui dans l’historique de Java a déjà changé le mot de passe du magasin de clés par défaut? Ils auraient dû le laisser en blanc.)

59
Timmmm