Я использовал следующие шаги для создания нового хранилища ключей Java с парой частного/открытого ключа, который будет использоваться сервером Java (внутренний) с TLS. Обратите внимание, что сертификат самоподписан:
1) Сгенерировать ключ с помощью AES256
openssl genrsa -aes256 -out server.key 1024
2) Создать запрос сертификата для CA
openssl req -x509 -sha256 -new -key server.key -out server.csr
3) Генерировать самоподписные сроки истечения 10 лет
openssl x509 -sha256 -days 3652 -in server.csr -signkey server.key -out selfsigned.crt
4) Используйте программу, например KeyStoreExplorer, чтобы импортировать пару (закрытый ключ и самоподписанный сертификат) в новый JKS
Это работает, но я бы хотел реализовать последний шаг без использования графического интерфейса.
Я знаю, как импортировать только подписанный сертификат:
// create the keystore and import the public key. THIS WILL NOT IMPORT THE PRIVATE KEY SO THE KEYSTORE CAN'T BE USED ON THE SERVER TO MAKE THE TLS CONNECTION
/usr/java/jdk1.6.0_45/bin/keytool -import -alias myservercert -file server.crt -keystore mykeystore.jks
Итак, возникает вопрос: как я могу создать Java KeyStore и импортировать как сертификат с открытым ключом, так и закрытый ключ без использования графического интерфейса?