Что вызывает ошибку 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 ответов
Я никогда не пытался сделать это раньше, но я нашел инструкции в 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
введите пароль хранилища ключей назначение:
повторно введите новый пароль:
ввод ключей источник пароль: