Что вызывает ошибку 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

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

Ответы

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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 PASSWORD -destalias ALIAS_NAME

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

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

Ответ 4

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

keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass "PFX_P12_FILE" -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass "PASSWORD" -destalias ALIAS_NAME

Ответ 5

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

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

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

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