keytool -genkey error: Keystore file does not exis

2019-03-11 10:06发布

问题:

I try to create a new self certified keystore file

The command I use is:

keytool -genkey -selfcert -dname "cn=My Name, ou=Orga unit" -alias selfcertified -keypass somepass -keystore keystore.jks -storepass anotherpass -validity 365

but I always get this annoying error:

keytool error: java.lang.Exception: Keystore file does not exist: keystore.jks

I do not understand why I'm getting this error. The command above should create a new keystore, so why is it complaining about a non existing store?

回答1:

Generating a key pair (and a new keystore) has to be done as a separate operation to creating a self-signed certificate for that key.

i.e.

keytool -genkey -alias myKey -keystore store.jks
keytool -selfcert -alias myKey -keystore store.jks


回答2:

Run command prompt as Administrator and it will be done.



回答3:

-selfcert option was made obsolete in keytool for Java 6. Check the last section of "Changes" here: Java 6 Keytool

So for Java 6 and onwards, replace -selfcert with -certreq