Bagaimana cara mengotomatiskan pembuatan Keystore menggunakan alat java keystore? tanpa interaksi pengguna

91

Saya mencoba untuk mengotomatiskan pembuatan keystore menggunakan alat keystore Java. Perintah yang saya gunakan adalah:

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

Tetapi setelah perintah ini, pengguna diharuskan memasukkan input tertentu sebagai berikut:

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  

Alih-alih pengguna memasukkan nilai-nilai ini, apakah ada cara untuk memberikan nilai-nilai ini tanpa interaksi pengguna, baik di dalam perintah atau melalui skrip?

Terima kasih

r3ap3r
sumber
mengapa Anda tidak membaca informasi ini dari file properti?
Shamis Shukoor
Ada lebih banyak opsi baris perintah - baca docs.oracle.com/javase/7/docs/technotes/tools/windows/… (termasuk nama yang dibedakan)
Jayan
7
Hanya karena contoh menggunakan alamat lokal, bukan berarti masalah ini dilokalkan. Saya bukan Inggris Raya dan memiliki pertanyaan yang sama. Untungnya, karena beberapa menjawab pertanyaan sebelum ditutup, itu hanya menghemat banyak waktu untuk mencoba mencari jawabannya.
Trevor North
7
Pertanyaan ini sangat berguna dan jawabannya membantu. Tidak mengerti mengapa itu ditutup.
Jose Martinez
2
Contoh lain dari pemicu gembira, moderator SO, yang siap untuk segera menjawab pertanyaan-pertanyaan aktual, relevan, dan berguna sehingga mereka dapat menggunakan sedikit kekuatan yang mereka miliki untuk membuat diri mereka merasa penting. Ini adalah hasil pertama ketika saya mencari pertanyaan ini di Google dan itu membantu saya menyelesaikan masalah saya, sulit dipercaya bahwa pertanyaan itu ditutup hanya karena merujuk pada lokal penanya dalam pertanyaan.
Fam

Jawaban:

165

Coba ini:

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
sumber
1
apakah ada cara untuk menentukan sandi keystore sumber saat mengimpor keystore .p12 ke dalam .jks?
Erik Kaplun
3
@ErikAllikkeytool -importkeystore [...] -srcstorepass password_here
Guillaume Boudreau
10

jangan lupa -noprompt, jika tidak Anda akan diminta untuk memasukkan Yes atau No

bintang
sumber
1
jika orang lain mengalami masalah yang sama dengan prompt bahkan dengan opsi ini: ada beberapa perintah yang memiliki -srckeypass dan -srcstorepass. Anda dapat dengan mudah mencampurnya
benez
5

Lihat dokumentasi lengkap tentang baris perintah atau dengan mengetik keytooltanpa argumen apa pun.

Secara khusus Anda mungkin ingin melihat opsi -storepass password -keypass password

Jayan
sumber
-dname kata kunci juga dibutuhkan
fredericrous