Что вызывает ошибку keytool "не удалось расшифровать безопасную запись содержимого"?

Я пытаюсь преобразовать стандартный PKCS #12 (.p12) хранилище ключей в хранилище ключей Java JKS с помощью этой команды:

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

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

6 ответов


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


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


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

этой нить задает подобный вопрос.

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

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

PFX / P12 в JKS (хранилище ключей Java)

вопрос: Как переместить сертификат из 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-тип хранилища pkcs12-хранилище ключей PFX_P12_FILE > имя файла.TXT, как это записывает вывод команда для файла с именем FILENAME.ФОРМАТ TXT.


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

программы keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype формате pkcs12 srcstorepass "PFX_P12_FILE" -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype следующих -deststorepass "пароль" -destalias псевдоним


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

ключей -importkeystore -srckeystore DemoIdentity.JKS-srcstoretype JKS-destkeystore demoidentity.П12-deststoretype формате pkcs12

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

для вашей проблемы, возможно, вы сделали что-то подобное при создании хранилища ключей.Р12.


У меня была аналогичная проблема, когда я пытался экспортировать сертификаты как pfx из JKS.Он работал, когда я исключил атрибут deststorepass в команде keytool и дал пароль хранилища назначения во время выполнения.

ключей -importkeystore -srckeystore ключей.jks-destkeystore dv163.pfx-srcstoretype JKS-deststoretype PKCS12-srcalias alias1-destalias alias1

введите пароль хранилища ключей назначение:

повторно введите новый пароль:

ввод ключей источник пароль: