Jak zautomatyzować generowanie magazynu kluczy za pomocą narzędzia magazynu kluczy Java? bez interakcji użytkownika


91

Próbuję zautomatyzować generowanie magazynu kluczy za pomocą narzędzia magazynu kluczy Java. Polecenie, którego używam, to:

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

Ale po tym poleceniu użytkownik musi wprowadzić określone dane wejściowe w następujący sposób:

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  

Czy zamiast wprowadzania tych wartości przez użytkownika, istnieje sposób na podanie tych wartości bez interakcji użytkownika, czy to w ramach polecenia, czy za pomocą skryptu?

Dzięki


dlaczego nie czytasz tych informacji z pliku nieruchomości?
Shamis Shukoor

Dostępnych jest więcej opcji wiersza poleceń - przeczytaj docs.oracle.com/javase/7/docs/technotes/tools/windows/ ... (w tym nazwa wyróżniająca)
Jayan

7
To, że w przykładzie użyto adresu lokalnego, nie oznacza, że ​​problem jest zlokalizowany. Jestem w Wielkiej Brytanii i właśnie miałem to samo pytanie. Na szczęście, ponieważ niektórzy odpowiedzieli na pytanie, zanim zostało ono zamknięte, zaoszczędziło mi to po prostu mnóstwo czasu na wypracowanie odpowiedzi.
Trevor North

7
To pytanie było bardzo przydatne, a odpowiedź pomogła. Nie rozumiem, dlaczego był zamknięty.
Jose Martinez

2
Kolejny przykład wyzwalania zadowolonych moderatorów SO, gotowych do natychmiastowego skoku, zamykając rzeczywiste, istotne i przydatne pytania, aby mogli wykorzystać niewielką ilość mocy, jaką mają, aby poczuć się ważni. To był pierwszy wynik, kiedy przeszukałem to pytanie w Google i pomógł mi rozwiązać mój problem, niewiarygodne, że zostało zamknięte tylko dlatego, że odnosiło się do języka pytającego w pytaniu.
Fam

Odpowiedzi:


165

Spróbuj tego:

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
czy istnieje sposób określenia hasła źródłowego magazynu kluczy podczas importowania magazynu kluczy .p12 do .jks?
Erik Kaplun

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

11

nie zapomnij -noprompt, w przeciwnym razie zostaniesz poproszony o wpisanie Tak lub Nie


1
jeśli ktoś miał ten sam problem, to nawet przy tej opcji pojawił się znak zachęty: jest kilka poleceń, które mają opcje -srckeypass i -srcstorepass. można je łatwo mieszać
benez

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.