web-dev-qa-db-ja.com

.p12ファイルを作成する

opensslを使用して、次のように秘密キーを作成しました。

openssl genrsa -out myKey.pem

次に、CAが要求するcsrを生成するために、次を実行しました。

openssl req -new -key myKey.pem -out cert.csr

CAは、myCert.cerという名前のファイルに保存した証明書で応答しました

必要なコンポーネント(秘密キー、公開キー(?)、および証明書)を1つの.p12にバンドルしたいと思います。そのために、次を実行しました。

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in myCert.cer

しかし、次のエラーメッセージが表示されます。

No certificate matches private key

どうすればこれを達成できますか?

40
Isaac Kleinman

opensslドキュメント は、-in引数として指定されたファイルが[〜#〜] pem [〜#〜]にある必要があることを示します形式。

CAのマニュアルとは異なり、myCert.cerに保存したCAから返された証明書は[〜#〜] pem [〜#〜]形式ではなくPKCS7です。

.p12を作成するには、最初に証明書を[〜#〜] pem [〜#〜]に変換する必要がありました。

openssl pkcs7 -in myCert.cer -print_certs -out certs.pem

そして実行する

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in certs.pem
46
Isaac Kleinman