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

Вы знаете, как решить эту проблему?


person Pedro Rolo    schedule 26.04.2012    source источник
comment
Похоже, ваше хранилище ключей PCKS # 12 повреждено. Можете ли вы проверить это с помощью openssl pkcs12 ...?   -  person user207421    schedule 27.04.2012


Ответы (9)


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

person William Grand    schedule 04.12.2013
comment
Тип хранилища ключей pkcs12 не различает keypass и storepass. Так что в моем случае мне просто пришлось использовать storepass (а не keypass) при получении ключа ... - person Lonzak; 13.10.2016
comment
Я использовал неправильный пароль, потому что WebSphere использует другой пароль по умолчанию, чем большинство доверенных хранилищ Java. - person Ryan D; 23.08.2018
comment
Вот что было для меня. Господи, мне потребовалось время, чтобы заставить это работать. - person amorimluc; 11.12.2019

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

person Pedro Rolo    schedule 27.04.2012

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

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

ИЗМЕНИТЬ (на основе комментария)

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

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_NAME jks -destorepassal PASSWORD -deststorepassal PASSWORD -deststorepassal ПАРОЛЬ

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

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

person axiopisty    schedule 26.04.2012

Сегодня у меня была такая же проблема (BadPaddingException). Похоже, в keytool возникла проблема с некоторыми символами в пароле. Я решил это, заключив пароль в двойные кавычки.

keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass "PFX_P12_FILE" -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass_NAME "ПАРОЛЬ ALIAS" -deststorepass "ПАРОЛЬ ALIAS" -dest

person KoJaman    schedule 21.10.2015

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

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

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

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

person Ben    schedule 02.01.2014
comment
Я думаю, ты что-то понял. Вероятно, keytool предположит, что исходный ключ - это что-то еще. - person not2qubit; 02.04.2019

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

keytool -importkeystore -srckeystore Keystore.jks -destkeystore dv163.pfx -srcstoretype JKS -deststoretype PKCS12 -srcalias alias1-destalias alias1

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

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

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

person Ram    schedule 24.04.2018

У меня была такая же проблема, я ввел пароль вручную, и проблема была решена

person Mohd. Shaizad    schedule 12.06.2021

Со своей стороны, я забываю проверять язык при вводе пароля :)  введите описание изображения здесь

person Slava Vasilenko    schedule 01.12.2020

просто введите правильный пароль в форме мастера сборки подписанного APK. (он работал со мной на android studio 4.2 canary 15 ++)

Как я узнал, когда вы меняете приложение в указанном мастере, несмотря на то, что пароль остается, он почему-то не подписывается правильно, поэтому вам нужно очистить пароль и ввести его снова.

person Miguel Silva    schedule 06.07.2021