Panair Odin Tech blog

株式会社パネイルによる、新電力向けシステムOdin(オーディン)の開発ブログです。

PKCS #12(.p12)ファイルからテキスト形式の証明書、秘密鍵、公開鍵を取り出す方法

はじめに

広域機関システムやスイッチング支援システムではクライアント証明書を使ったSSL相互認証を行います。 このとき認証機関からは PKCS #12 という形式でクライアント証明書が発行されます。(拡張子は.p12)

ブラウザにインストールする場合はこのままでもOKですが、何らかのシステムを使って自動化する場合はテキスト形式の証明書や、秘密鍵、公開鍵が必要になる場合があります。 この記事では PKCS #12 からテキスト形式に変換する方法を紹介します。

なお、本記事では以下の環境で動作確認しています。

  • Mac OS X 10.11.3

秘密鍵を取り出す

秘密鍵を取り出す場合は以下のコマンドを使います。

$ openssl pkcs12 -in EPP_xxx.p12 -nocerts -nodes -out privateKey.pem

"Enter Import Password:" というプロンプトが表示されたら、認証機関から提供されているパスワードを入力します。 "MAC verified OK"という表示が出ればOKです。

正しく変換できているか確認しましょう。

$ cat privateKey.pem
Bag Attributes
    localKeyID: (省略) 
    friendlyName: (省略)
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
(長い文字列)
-----END PRIVATE KEY-----

クライアント証明書を取り出す

クライアント証明書を取り出す場合は以下のコマンドを使います。

$ openssl pkcs12 -in EPP_xxx.p12 -clcerts -nokeys -out publicCert.pem

こちらもやはりパスワードの入力を要求されます。

変換が終わったら、正しく変換できていることを確認します。

$ cat publicCert.pem
Bag Attributes
    localKeyID: (省略)  
    friendlyName: (省略) 
subject=(省略) 
issuer=(省略) 
-----BEGIN CERTIFICATE-----
(長い文字列)
-----END CERTIFICATE-----

公開鍵を取り出す

公開鍵を取り出す場合は、上で変換したクライアント証明書を使います。

$ openssl x509 -pubkey -in publicCert.pem -noout > publicKey.pem

公開鍵を取り出す場合はパスワードは要求されません。 変換が終わったら内容を確認します。

$ cat publicKey.pem 
-----BEGIN PUBLIC KEY-----
(長い文字列)
-----END PUBLIC KEY-----

まとめ

PKCS #12(.p12)ファイルからテキスト形式の証明書、秘密鍵、公開鍵を取り出す方法は以上です。

免責事項

このページに記載されている情報に従ってあなたが操作を行い、いかなる損害を被ろうとも、当方は一切の責任を負いません。あなたが当ページの内容を利用する場合は、自己責任で行う必要があります。