p12ファイルから証明書と秘密鍵を取り出す


.p12 ファイルから証明書と秘密鍵を取り出す方法です。
AWS SNS を Terraform で書くときに必要でした。

$ openssl pkcs12 -in xxxx.p12 -nodes -nokeys -out certificate.pem
$ openssl pkcs12 -in xxxx.p12 -nodes -nocerts -out privatekey.pem

ただ、この方法では、ファイルの先頭に NoArgument から始まるテキストが入ってしまいます。
NoArgument が入っても悪さはしないのですが、気になったので消そうとしました。 以下のコマンドを実行すると秘密鍵は NoArgument 無しで変換できました。
証明書はそのテキストを消す方法が見つから無かったのでいったん諦めました。
もし分かりましたら追記します。

$ openssl pkcs12 -in xxxx.p12 -nodes -nocerts | openssl rsa -out privatekey.pem

参考: Push通知の証明書、p12 -> pem変換について