1. ホーム
  2. java

[解決済み] .pfxファイルを秘密鍵付きKeyStoreに変換する方法を教えてください。

2022-07-01 22:07:15

質問

Androidアプリケーションに署名したいのですが ( .apk ).

私は .pfx ファイルに変換しました。私はそれを .cer ファイルを Internet Explorer 経由で変換し、さらに .cer.keystore をkeytoolで作成しました。それから、私は署名しようとしました .apk をjarsignerで署名しようとしましたが、.keystoreには秘密鍵が含まれないと言われました。

何が間違っているのでしょうか?

どうすればよいのでしょうか?

JDK1.6以降を使用する

以下のコメントでJustinが指摘していますが、keytoolだけでも以下のコマンドで可能です(ただし、JDK 1.6以降のみ)。

keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12 
-destkeystore clientcert.jks -deststoretype JKS

JDK1.5以下を使用

OpenSSLは全部できる。 JGuruでのこの回答 は、私がこれまで見つけた中で最良の方法です。

まず最初に、あなたが OpenSSL がインストールされていることを確認します。私が Mac OS X で見つけたように、多くのオペレーティング システムにはすでにインストールされています。

次の 2 つのコマンドは、pfx ファイルを Java PKCS12 キー ストアとして開くことができる形式に変換します。

openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"

2番目のコマンドで提供される名前は、新しいキーストアでのキーのエイリアスであることに注意してください。

Java keytool ユーティリティを使用して、次のコマンドでキー ストアの内容を確認することができます。

keytool -v -list -keystore mykeystore.p12 -storetype pkcs12

最後に必要であれば、上で作成したキーストアを新しいキーストアにインポートすることで、これをJKSキーストアに変換することができます。

keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS