Як автоматизувати генерацію Keystore за допомогою інструмента зберігання ключів Java? без взаємодії з користувачем


90

Я намагаюся автоматизувати генерацію магазину ключів за допомогою інструмента зберігання ключів 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  

Замість того, щоб користувач вводив ці значення, чи є спосіб надати ці значення без взаємодії з користувачем, або в команді, або через скрипт?

Дякую


чому ви не читаєте цю інформацію з файлу властивостей?
Шаміс Шукур

Є більше варіантів командного рядка - читайте docs.oracle.com/javase/7/docs/technotes/tools/windows/… (включаючи відмінне ім’я)
Jayan,

7
Те, що в прикладі використано локальну адресу, не означає, що ця проблема локалізована. Я в Великобританії, і у мене було те саме питання. На щастя, оскільки деякі відповідали на запитання до того, як його закрили, це просто заощадило мені багато часу, намагаючись знайти відповідь.
Тревор Норт,

7
Це запитання було дуже корисним, і відповідь допомогла. Не розумію, чому його закрили.
Хосе Мартінес

2
Ще один приклад спроможних модераторів SO, готових перестрибувати з пістолета в будь-який момент, закриваючи актуальні, відповідні та корисні запитання, щоб вони могли скористатися невеликою потужністю, необхідною для того, щоб почувати себе важливим. Це був перший результат, коли я шукав це запитання в Google, і це допомогло мені вирішити мою проблему, неймовірно, що вона була закрита просто тому, що вона посилалася на локаль запитувача.
Fam

Відповіді:


163

Спробуйте це:

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.