Como automatizar a geração de keystore usando a ferramenta java keystore? sem interação do usuário


90

Estou tentando automatizar a geração de armazenamento de chaves usando a ferramenta de armazenamento de chaves Java. O comando que estou usando é:

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

Mas após este comando, o usuário deve inserir certas entradas da seguinte forma:

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  

Em vez de o usuário inserir esses valores, há alguma maneira de fornecer esses valores sem a interação do usuário, seja no comando ou por meio de um script?

obrigado


por que você não lê essas informações em um arquivo de propriedade?
— Shamis Shukoor

Há mais opções de linha de comando - leia docs.oracle.com/javase/7/docs/technotes/tools/windows/… (incluindo nome distinto)
— Jayan

7
Só porque o exemplo usou um endereço local, não significa que o problema foi localizado. Eu sou um Reino Unido e tinha a mesma pergunta. Felizmente, como alguns responderam à pergunta antes de ela ser fechada, isso apenas me economizou muito tempo tentando encontrar a resposta.
— Trevor North

7
Essa pergunta foi muito útil e a resposta ajudou. Não entendo porque foi fechado.
— Jose Martinez,

2
Mais um exemplo de moderadores de SO prontos para disparar a qualquer momento ao encerrar questões reais, relevantes e úteis, para que possam exercer o pequeno poder de que dispõem para se sentirem importantes. Este foi o primeiro resultado quando eu pesquisei essa questão no Google e me ajudou a resolver meu problema, inacreditável que foi fechado simplesmente porque referenciou a localidade do autor da pergunta na questão.
— Fam

Respostas:


163

Experimente isto:

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

1
existe uma maneira de especificar a senha do keystore de origem ao importar um keystore .p12 para um .jks?
— Erik Kaplun,

3
@ErikAllikkeytool -importkeystore [...] -srcstorepass password_here
— Guillaume Boudreau

10

não se esqueça de -noprompt, caso contrário, você será solicitado a inserir Sim ou Não


1
se outra pessoa teve o mesmo problema que houve um prompt mesmo com esta opção: existem alguns comandos que têm -srckeypass e -srcstorepass. você pode misturá-los facilmente
— benez

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.