34

次のコマンドを使用して、標準の 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

この問題を解決する方法はありますか?

4

9 に答える 9

43

このエラーは、p12 キーに間違ったパスワードを使用した場合に発生することがあります。

于 2013-12-04T18:45:26.393 に答える
13

pkcs12 キーストアは確かに壊れていました。

于 2012-04-27T10:03:15.877 に答える
7

これまでにこれを試みたことはありませんが、Google here で手順を見つけました。

このスレッドは同様の質問をします。

編集(コメントに基づく)

リンクされた参照の完全な内容は次のとおりです。

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

注: srcalias を見つけるには、PFX/P12 ファイルの内容を一覧表示します。

keytool -v -list -storetype pkcs12 -keystore PFX_P12_FILE > FILENAME.TXT これにより、コマンドの出力が FILENAME.TXT という名前のファイルに書き込まれます。

于 2012-04-26T18:05:22.710 に答える
3

今日も同じ問題が発生しました(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

于 2015-10-21T09:54:20.340 に答える
2

JKS から PKCS12 に秘密鍵をエクスポートするために、このコマンド (あなたのコマンドとは逆) を実行しました。

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

一見冗長な「-srcstoretype JKS」を省略した場合、生成された demoidentity.p12 ファイルは、上記のコマンドがパスワードを受け入れて一見正しくファイルを生成したにもかかわらず、keytool で詳細をリストしようとしたときに同じエラーを出しました!

あなたの問題については、おそらくkeystore.p12を生成するときに同様のことをしました。

于 2014-01-02T00:47:01.823 に答える