it-swarm.com.ru

Нужна помощь в преобразовании сертификата P12 в JKS

Мне нужна помощь в преобразовании моего файла сертификата .P12 в хранилище ключей JKS. Я следовал стандартным командам, используя утилиту keytool в Java. Однако, когда я пытаюсь использовать полученный файл JKS для доступа к конечной точке WS через SOAPUI, я получаю ошибку 403.7 - Запрещено: требуется сертификат SSL. Использование файла P12 с SOAPUI на той же конечной точке дает успешный ответ. Вот стандартная команда для импорта хранилища ключей P12 в хранилище ключей JKS - 

keytool -importkeystore -srckeystore src.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore target.jks

Я также попытался использовать openssl для преобразования P12 -> PEM -> DER -> JKS:

openssl pkcs12 -in src.p12 -out src.pem -clcerts

(Отредактируйте src.pem на две составные части, называемые src.key и src.cer).

openssl pkcs8 -topk8 -nocrypt -in src.key -out key.der -inform PEM -outform DER
openssl x509 -in src.cer -inform PEM -out cert.der -outform DER

(Я запустил утилиту, чтобы объединить два ключа в keystore.ImportKey)

keytool -importkeystore -srckeystore keystore.ImportKey -destkeystore target.JKS

и, похоже, не кости.

Я что-то упускаю?

14
Adam Doyle

Если у вас есть приложение Keytool и файл PKCS # 12, запустите однострочную команду:

keytool -importkeystore -srckeystore [MY_FILE.p12] -srcstoretype pkcs12
 -srcalias [ALIAS_SRC] -destkeystore [MY_KEYSTORE.jks]
 -deststoretype jks -deststorepass [PASSWORD_JKS] -destalias [ALIAS_DEST]

Вам нужно будет изменить эти параметры:

  • MY_FILE.p12: указать путь к файлу PKCS # 12 (расширение .p12 или .pfx) для преобразования.
  • MY_KEYSTORE.jks: путь к хранилищу ключей, в котором вы хотите сохранить свой сертификат. Если он не существует, он будет создан автоматически.
  • PASSWORD_JKS: пароль, который будет запрошен при открытии хранилища ключей.
  • ALIAS_SRC: имя, соответствующее вашей записи сертификата в файле PKCS # 12, например, "Tomcat". 

В случае, если вы экспортируете свой сертификат с сервера Windows, генерирующего файл .PFX, вам придется извлечь имя «псевдоним», созданное Windows. Для этого вы можете выполнить следующую команду: 

keytool -v -list -storetype pkcs12 -keystore FILE_PFX

Там в поле «псевдоним» указывается имя хранилища вашего сертификата, которое необходимо использовать в командной строке.

  • ALIAS_DEST: имя, которое будет соответствовать вашей записи сертификата в хранилище ключей JKS, например, Tomcat.
13
deeps

Но он спросил, как конвертировать .p12 в JKS, поэтому ответ таков:

keytool -importkeystore  -srckeystore mystore.p12 -destkeystore myotherstore.jks -srcstoretype PKCS12 -deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey -destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass

Просто пришлось использовать эту строчку, у меня работает.

2
Schroeffu

Я удивлен, почему никто не ответил на этот вопрос так долго. В любом случае, самый простой способ конвертировать p12 в jks - использовать Keytool. Ниже приведена команда, которую вам может понадобиться: 

keytool -importkeystore  -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass

Я считаю, что проблемы, с которыми вы сталкиваетесь, возможно, связаны с тем, что вы не предоставили Keypass. Обратите внимание, что хорошей практикой является сохранение паролей и хранилищ одинаковыми, поскольку иногда сервер не может различить пароли и хранилища. 

0
eshaa