Используйте инструмент командной строки OpenSSL, чтобы сначала преобразовать файл PKCS # 8 в простой закрытый ключ:
openssl pkcs8 -in file.pk8 -out key.pem
Если это приводит к ошибке, возможно, потому что ключ в формате DER, попробуйте этозатем:
openssl pkcs8 -in file.pk8 -inform DER -out key.pem
Соберите сертификаты, которые вы хотите иметь в вашем хранилище ключей PKCS # 12, и убедитесь, что они закодированы в PEM (откройте их в текстовом редакторе - если файл начинается с '---- НАЧАТЬ СЕРТИФИКАТ X.509 ----- 'или аналогичный, тогда вы уже готовы):
openssl x509 -in single_cert.cer -inform DER -out single_cert.pem
Откройте текстовый редактор и вставьте все сертификаты в кодировке PEM плюс содержимое key.pem в этом файле, один за другим, чтобы получить файл, подобный этому:
----- BEGIN RSA PRIVATEKEY ----- '' or another format, depends on your key
...contents of your key file
----- END RSA PRIVATEKEY -----
----- BEGIN X.509 CERTIFICATE -----
...contents of certificate 1
----- END X.509 CERTIFICATE -----
----- BEGIN X.509 CERTIFICATE -----
...contents of certificate 2
----- END X.509 CERTIFICATE -----
...
Сохраните это, например, как all.pem.Чтобы наконец создать хранилище ключей PKCS # 12, введите следующую команду:
openssl pkcs12 -export -in all.pem -out file.p12 -name "somename"
Укажите пароль и все готово.Параметр name
станет вашим «псевдонимом» в мире Java.