2011-02-07 14 views
12

cerco di creare un nuovo file di archivio chiavi auto certificatakeytool errore -genkey: file di archivio chiavi non esiste

Il comando che uso è:

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

ma ho sempre ottenere questo errore fastidioso:

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

Non capisco perché sto ricevendo questo errore. Il comando precedente dovrebbe creare un nuovo keystore, quindi perché si lamenta di un negozio non esistente?

risposta

18

La generazione di una coppia di chiavi (e un nuovo keystore) deve essere eseguita come operazione separata per creare un certificato autofirmato per quella chiave.

cioè

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

dalla documentazione online keytool: Un keystore viene creato ogni volta che si utilizza un comando -genkey, -import o -identitydb per aggiungere dati a un keystore che non esiste ancora. (Http://download.oracle.com/javase/1.4.2/docs/tooldocs/solaris/keytool.html). in base a ciò, il comando keytool dovrebbe creare un nuovo keystore invece di dire che non esiste. potresti dare un esempio di come eseguire questi due passaggi che hai citato? –

+0

@Chris Friedl - '-genkey' e' -selfcert' sono comandi separati: non è possibile eseguire entrambi contemporaneamente. – OrangeDog

+0

grazie! - due comandi separati l'hanno fatto alla fine. la cosa divertente è che ci sono diversi siti che forniscono tutorial con i due comandi in una riga come ho scritto sopra. –

2

prompt dei comandi Esegui come amministratore e sarà fatto.

0

-selfcert opzione è stata resa obsoleta nel keytool per Java 6. Controllare l'ultima sezione di "Changes" qui: Java 6 Keytool

Così per Java 6 in poi, sostituire -selfcert con -certreq