Oracle написала полные инструкции по преобразованию PEM в хранилище ключей.Это также покрывает p12.Это, вероятно, будет делать то, что вы хотите.
К сожалению, поисковые системы не очень хорошо это могут найти, так как они называют его «JKS», а не хранилище ключей.
Короче говоря:
Преобразуйте сертификат из PEM в PKCS12, используя следующую команду: openssl pkcs12 -export -out eneCert.pkcs12 -in eneCert.pem
Вы можетеигнорируйте предупреждающее сообщение, которое выдает эта команда.Введите и повторите пароль экспорта.Создайте, а затем удалите пустое хранилище доверенных сертификатов, используя следующие команды:
keytool -genkey -keyalg RSA -alias endeca -keystore truststore.ks
keytool -delete -alias endeca -keystore truststore.ks
Команда -genkey создает сертификат по умолчанию, показанный ниже.(Это временный сертификат, который впоследствии удаляется командой -delete, поэтому не имеет значения, какую информацию вы здесь вводите.)
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
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=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes
Enter key password for <endeca>
(RETURN if same as keystore password):
Re-enter new password:
Импортируйте CA в доверенное хранилище, используя следующую команду: keytool-import -v -trustcacerts -alias endeca-ca -file eneCA.pem -keystore truststore.ks
Введите пароль хранилища ключей.На приглашение "Доверять этому сертификату?"Тип да.Создайте пустой Java KeyStore, используя следующие команды:
keytool -genkey -keyalg RSA -alias endeca -keystore keystore.ks
keytool -delete -alias endeca -keystore keystore.ks
Команда -genkey создает сертификат по умолчанию, показанный ниже.(Это временный сертификат, который впоследствии удаляется командой -delete, поэтому не имеет значения, какую информацию вы здесь вводите.)
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
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="Unknown", OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes
Импортируйте свой закрытый ключ в пустой JKS, используя следующую команду:
keytool -v -importkeystore -srckeystore eneCert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS