Я пытаюсь импортировать сертификат и файл ключа в хранилище ключей, но не могу этого сделать.
Как создать хранилище ключей, импортировав как существующий сертификат (abc.crt), так и файлы abc.key?
Я пытаюсь импортировать сертификат и файл ключа в хранилище ключей, но не могу этого сделать.
Как создать хранилище ключей, импортировав как существующий сертификат (abc.crt), так и файлы abc.key?
Вероятно, проще всего создать файл 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
PKCS12
пароль ключей совпадает с паролем хранилища (в то время как они могут отличаться для других типов хранилищ, особенно JKS
).
- person Bruno; 14.08.2012
.key
, который у меня есть, потому что openssl rsa -text
может отображать что-то похожее на действительный закрытый ключ.
- person hmakholm left over Monica; 15.08.2012
Вы должны использовать 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
Добавление к ответу @MK Yung и @Bruno. Введите пароль для целевого хранилища ключей. Я видел, как моя консоль зависала, когда я ввел команду без пароля.
openssl pkcs12 -export -in abc.crt -inkey abc.key -out abc.p12 -name localhost -passout pass:changeit
В дополнение к ответу @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
Если хранилище ключей предназначено для tomcat, то после создания хранилища ключей с приведенными выше ответами вы должны добавить последний шаг для создания псевдонима «tomcat» для ключа:
keytool -changealias -alias "1" -destalias "tomcat" -keystore keystore-file.jks
Вы можете проверить результат с помощью:
keytool -list -keystore keystore-file.jks -v