Как автоматизировать создание хранилища ключей с помощью инструмента хранилища ключей Java? без взаимодействия с пользователем


91

Я пытаюсь автоматизировать создание хранилища ключей с помощью инструмента хранилища ключей Java. Я использую следующую команду:

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

Но после этой команды пользователь должен ввести определенные данные следующим образом:

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  

Вместо того, чтобы пользователь вводил эти значения, есть ли способ предоставить эти значения без взаимодействия с пользователем, внутри команды или с помощью сценария?

Благодарность


почему вы не читаете эту информацию из файла свойств?
Shamis Shukoor

Есть и другие параметры командной строки - прочтите docs.oracle.com/javase/7/docs/technotes/tools/windows/… (включая выдающееся имя)
Jayan

7
Тот факт, что в примере использовался локальный адрес, не означает, что проблема локализована. Я из Великобритании, и у меня возник тот же вопрос. К счастью, поскольку некоторые ответили на вопрос до того, как он был закрыт, это просто сэкономило мне массу времени, пытаясь найти ответ.
Trevor North

7
Этот вопрос был очень полезным, и ответ помог. Не понимаю, почему его закрыли.
Хосе Мартинес

2
Еще один пример довольных модераторов SO, готовых бросить вызов в любой момент при закрытии актуальных, актуальных и полезных вопросов, чтобы они могли проявить небольшую силу, которая у них есть, чтобы почувствовать себя важными. Это был первый результат, когда я искал этот вопрос в Google, и он помог мне решить мою проблему, невероятно, что она была закрыта просто потому, что в вопросе была ссылка на локаль спрашивающего.
Fam

Ответы:


165

Попробуй это:

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
есть ли способ указать пароль исходного хранилища ключей при импорте хранилища ключей .p12 в .jks?
Эрик Каплун

3
@ErikAllikkeytool -importkeystore [...] -srcstorepass password_here
Гийом Будро

10

не забудьте -noprompt, иначе вам будет предложено ввести Да или Нет


1
если у кого-то была та же проблема, что и при использовании этого параметра: есть некоторые команды с -srckeypass и -srcstorepass. Вы можете легко смешать их
Benez

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.