2012-04-26 2 views
16

Я пытаюсь преобразовать качестве стандарта PKCS # 12 (P12-) хранилища ключей в хранилище ключей Java JKS с помощью этой команды:Что вызывает ошибку keytool «Не удалось расшифровать запись безопасного содержимого»?

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

Он неисправный с:

keytool error: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded 

Do у вас есть идея, как решить эту проблему?

+2

Похоже, ваши PCKS # 12 Хранилище ключей поврежден. Вы можете проверить это с помощью 'openssl pkcs12 ...'? – EJP

ответ

6

Хранилище pkcs12 было действительно повреждено.

4

Я никогда не пытался сделать это раньше, но я нашел инструкции по google here.

Этот thread задал аналогичный вопрос.

EDIT (на основе комментариев)

Вот полное содержание связанного ссылки:

PFX/P12 для JKS (Java KeyStore)

Вопрос: Как я перенести сертификат из IIS/PFX (файл .p12) в JKS (Java KeyStore)?

Ответ: Keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype PKCS12 -srcstorepass PFX_P12_FILE -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype JKS -deststorepass ПАРОЛЬ -destalias ALIAS_NAME

Примечание: Чтобы найти srcalias, перечислить содержимое файла PFX/P12:

keytool -v -list -storetype pkcs12 -keystore PFX_P12_FILE> FILENAME.TXT Поскольку это записывает вывод команды в файл с именем FILENAME.TXT.

25

Иногда эта ошибка является симптомом использования неправильного пароля для клавиши p12.

+0

Тип хранилища pkcs12 не проводит различия между клавишами и хранилищем. Поэтому в моем случае я просто должен был использовать хранилище (а не keypass) при извлечении ключа ... – Lonzak

1

Я сделал эту команду (противоположной вашей), чтобы экспортировать закрытый ключ PKCS12 из JKS:

Keytool -importkeystore -srckeystore DemoIdentity.jks -srcstoretype JKS -destkeystore demoidentity.p12 -deststoretype PKCS12

Если бы я остановился на кажущемся избыточным «-srcstoretype JKS», сгенерированный файл demoidentity.p12 дал мне ту же ошибку, когда я попытался перечислить детали в keytool, хотя приведенная выше команда приняла пароли и сгенерировала файл, казалось бы, правильно!

Для вашей проблемы, возможно, вы сделали что-то подобное при создании keystore.p12.

2

У меня была такая же проблема сегодня (BadPaddingException). Кажется, у keytool была проблема с определенными символами в пароле. Я решил это, добавив двойные кавычки вокруг пароля.

Keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype PKCS12 -srcstorepass "PFX_P12_FILE" -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype JKS -deststorepass "ПАРОЛЬ" -destalias ALIAS_NAME

Смежные вопросы