¿Cómo automatizar la generación de almacén de claves con la herramienta de almacén de claves de Java? sin interacción del usuario

90

Estoy intentando automatizar la generación de almacén de claves con la herramienta de almacén de claves de Java. El comando que estoy usando es:

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

Pero después de este comando, el usuario debe ingresar ciertas entradas de la siguiente manera:

Enter keystore password:  password
What is your first and last name?  
[Unknown]:  jetty.mortbay.org  
What is the name of your organizational unit?  
[Unknown]:  Jetty  
What is the name of your organization?  
[Unknown]:  Mort Bay Consulting Pty. Ltd.  
What is the name of your City or Locality?  
[Unknown]:  
What is the name of your State or Province?  
[Unknown]:  
What is the two-letter country code for this unit?  
[Unknown]:  
Is CN=jetty.mortbay.org, OU=Jetty, O=Mort Bay Consulting Pty. Ltd.,  
L=Unknown, ST=Unknown, C=Unknown correct?  
[no]:  yes  

Enter key password for <jetty>  
(RETURN if same as keystore password):  password  

En lugar de que el usuario ingrese estos valores, ¿hay alguna forma de proporcionar estos valores sin la interacción del usuario, ya sea dentro del comando o mediante un script?

Gracias

r3ap3r
fuente
¿Por qué no lee esta información de un archivo de propiedad?
Shamis Shukoor
Hay más opciones de línea de comandos: lea docs.oracle.com/javase/7/docs/technotes/tools/windows/… (incluido el nombre distinguido)
Jayan
7
El hecho de que el ejemplo utilice una dirección local no significa que este problema esté localizado. Soy un Reino Unido y tenía la misma pregunta. Afortunadamente, debido a que algunos respondieron la pregunta antes de que se cerrara, me ahorró mucho tiempo tratando de encontrar la respuesta.
Trevor North
7
Esta pregunta fue muy útil y la respuesta ayudó. No entiendo por qué estaba cerrado.
Jose Martinez
2
Otro ejemplo más de desencadenantes moderadores de SO felices listos para saltar el arma en cualquier momento sobre el cierre de preguntas reales, relevantes y útiles para que puedan ejercer la pequeña cantidad de poder que tienen para sentirse importantes. Este fue el primer resultado cuando busqué esta pregunta en Google y me ayudó a resolver mi problema, increíble que estuviera cerrado simplemente porque hacía referencia a la configuración regional del autor de la pregunta en la pregunta.
Fam

Respuestas:

163

Prueba esto:

keytool -genkey -noprompt \
 -alias alias1 \
 -dname "CN=mqttserver.ibm.com, OU=ID, O=IBM, L=Hursley, S=Hants, C=GB" \
 -keystore keystore \
 -storepass password \
 -keypass password
Evgeniy Dorofeev
fuente
1
¿Hay alguna manera de especificar la contraseña del almacén de claves de origen al importar un almacén de claves .p12 a un .jks?
Erik Kaplun
3
@ErikAllikkeytool -importkeystore [...] -srcstorepass password_here
Guillaume Boudreau
10

no olvides -noprompt, de lo contrario se te pedirá que ingreses Sí o No

estrella
fuente
1
si alguien más tuvo el mismo problema, hubo un mensaje incluso con esta opción: hay algunos comandos que tienen -srckeypass y -srcstorepass. puede mezclarlos fácilmente
benez