Search code examples
javasslopensslkeytool

Change keystore password from no password to a non blank password


I have a jks keystore with no password. When I run the command

keytool -list -keystore mykeystore.jks

And it prompts me for the keystore password, I simply hit 'enter'.

Please note that the keystore password IS NOT the default java password of 'changeit'. It is blank

When I try to run

keytool -storepasswd -keystore mykeystore.jks

to change the password to a non blank string. It firsts prompts me for the current password. Simply hitting enter since it is blank says

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

Just to confirm with everyone that the password is not 'changeit'

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

Any idea how I can change the keystore password if the existing password is blank?


Solution

  • Add -storepass to keytool arguments.

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

    But also notice that -list command does not always require a password. I could execute follow command in both cases: without password or with valid password

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