Как я могу создать хранилище ключей из существующих сертификатов (abc.crt) и файлов abc.key?
Я пытаюсь импортировать сертификат и файл ключа в хранилище ключей, но я не могу этого сделать.
Как создать хранилище ключей путем импорта как существующего сертификата (abc.crt), так и файлов abc.key?
Ответы
Ответ 1
Самый простой способ - создать файл PKCS # 12 с помощью OpenSSL:
openssl pkcs12 -export -in abc.crt -inkey abc.key -out abc.p12
Вы должны иметь возможность использовать полученный файл напрямую, используя тип хранилища PKCS12
.
Если вам действительно нужно, вы можете преобразовать его в JKS с помощью keytool -importkeystore
(доступно в keytool
из Java 6):
keytool -importkeystore -srckeystore abc.p12 \
-srcstoretype PKCS12 \
-destkeystore abc.jks \
-deststoretype JKS
Ответ 2
Вы должны использовать OpenSSL и keytool.
OpenSSL для файла CER и PVK > P12
openssl pkcs12 -export -name servercert -in selfsignedcert.crt -inkey serverprivatekey.key -out myp12keystore.p12
Keytool для p12 > JKS
keytool -importkeystore -destkeystore mykeystore.jks -srckeystore myp12keystore.p12 -srcstoretype pkcs12 -alias servercert
Ответ 3
В дополнение к ответу @Bruno вам необходимо предоставить -name
для псевдонима, иначе Tomcat выдаст ошибку Alias name tomcat does not identify a key entry
Пример команды:
openssl pkcs12 -export -in localhost.crt -inkey localhost.key -out localhost.p12 -name localhost
Ответ 4
Если хранилище ключей предназначено для tomcat, то после создания хранилища ключей с вышеуказанными ответами необходимо добавить последний шаг для создания псевдонима "tomcat" для ключа:
keytool -changealias -alias "1" -destalias "tomcat" -keystore keystore-file.jks
Вы можете проверить результат с помощью:
keytool -list -keystore keystore-file.jks -v