OpenSSLを使用してPKCS#12ファイルから証明書と秘密鍵をエクスポートする

注: この記事は、SSL.com コード署名およびドキュメント署名証明書には適用されません。 これらの種類の証明書の秘密キーはエクスポートできず、.pfx ファイルとして生成することもできません。 SSL.com コード署名およびドキュメント署名証明書とその秘密キーは、次の場所にのみ生成および保存できます。 eSigner クラウド署名環境 ユビキー デバイス、またはサポートされている クラウドHSM.

このハウツーでは、OpenSSLを使用してPKCS#12ファイルから情報を抽出する方法について説明します。 PKCS#12(別名PKCS12またはPFX)は、証明書チェーンと秘密鍵を単一の暗号化可能なファイルに格納するためのバイナリ形式です。 PKCS#12ファイルは、WindowsおよびmacOSコンピューターで証明書と秘密鍵をインポートおよびエクスポートするために一般的に使用され、通常はファイル名拡張子が付きます .p12 or .pfx.

さらに役立つハウツーと最新のサイバーセキュリティニュースについては、SSL.comのニュースレターにサインアップしてください。

OpenSSLとは何ですか?
OpenSSLは、で作業するための非常に便利なオープンソースのコマンドラインツールキットです。 X.509 証明書、証明書署名要求(CSRs)、および暗号化キー。 LinuxやmacOSなどのUNIXバリアントを使用している場合は、OpenSSLがすでにコンピューターにインストールされている可能性があります。 WindowsでOpenSSLを使用する場合は、有効にすることができます Windows 10のLinuxサブシステム またはインストールする Cygwin。 簡単にもできます 作ります openSSLを使用したPKCS#12ファイル。

SSL.comは多種多様な SSL /TLS サーバー証明書 HTTPSWebサイトの場合。

SSLの比較/TLS CERTIFICATES

ビデオ

https://www.youtube.com/watch?v=S_imVMFOdhU

以下に示すすべての例で、実際に作業しているファイルの名前を置き換えてください INFILE.p12, OUTFILE.crt, OUTFILE.key.

画面上のPKCS#12情報の表示

PKCS#12ファイルのすべての情報を画面にダンプするには PEM形式、次のコマンドを使用します。

openssl pkcs12 -info -INFILE.p12 -nodes

次に、PKCS#12ファイルのパスワードの入力を求められます。

インポートパスワードを入力:

PKCS#12ファイルの作成時に入力したパスワードを入力し、 enter。 OpenSSLは、ファイル内の証明書と秘密鍵を画面に出力します。

バッグの属性localKeyID:AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 subject = / CN = Aaron Russell/emailAddress=*********@gmail.com issuer = / C = US / ST =テキサス/ L =ヒューストン/ O = SSL株式会社/ CN = SSL.comクライアント証明書、中間CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1MlKEY _--- PRSUHL2JEND_PRWUWUJwUcwUwwwww

秘密鍵を暗号化する

秘密鍵を暗号化し、出力前にパスワードで保護したい場合は、単に -nodes コマンドからのフラグ:

openssl pkcs12 -info -INFILE.p12 内

この場合、OpenSSLが証明書を出力した後、新しいパスワードを入力して確認するように求められ、秘密鍵が暗号化されます(鍵のテキストが -----BEGIN ENCRYPTED PRIVATE KEY-----):

PEMのパスフレーズを入力します。 - 検証をPEMのパスフレーズを入力します。----- BEGIN ENCRYPTED PRIVATE KEY ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END暗号化プライベートキー-----

証明書または秘密鍵のみを抽出

秘密鍵のみを出力したい場合は、 -nocerts コマンドへ:

openssl pkcs12 -info -INFILE.p12 -nodes -nocerts

証明書のみが必要な場合は、 -nokeys (私たちは秘密鍵を気にしていないので、安全に省略できます -nodes):

openssl pkcs12 -info -INFILE.p12 -nokeys

証明書と秘密鍵をファイルに保存する

証明書と秘密鍵をPKCS#12ファイルからエクスポートし、出力ファイル名を指定することにより、PEM形式で新しいファイルに保存できます。

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -ノード

ここでも、PKCS#12ファイルのパスワードの入力を求められます。 以前と同様に、削除することで秘密鍵を暗号化できます -nodes コマンドからのフラグおよび/または追加 -nocerts or -nokeys 秘密鍵または証明書のみを出力します。 したがって、秘密鍵ファイルを生成するには、次のコマンドを使用できます。

openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocerts

そして、証明書のみを含むファイルを作成するには、これを使用します:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nokeys

秘密鍵をPKCS#1形式に変換

上記の例はすべて、OpenSSLのデフォルトで秘密鍵を出力します PKCS#8 フォーマット。 あなたが必要と知っているなら PKCS#1 代わりに、OpenSSLのPKCS#12ユーティリティの出力を、キータイプに応じてRSAまたはECユーティリティにパイプすることができます。 以下の両方のコマンドは、PKCS#1形式でキーファイルを出力します。

RSA

openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl pkcsXNUMX -in INFILE.pXNUMX -nodes -nocerts | openssl pkcsXNUMX -in INFILE.pXNUMX -nodes -nocerts openssl rsa -out OUTFILE.key

ECDSA

openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl pkcsXNUMX -in INFILE.pXNUMX -nodes -nocerts | openssl pkcsXNUMX -in INFILE.pXNUMX -nodes -nocerts openssl ec -out OUTFILE.key

注: PKCS#8とPKCS#1の秘密鍵ファイルの違いは、テキストの最初の行を見ればわかります。 PKCS#1ファイルはアルゴリズムを指定します:
-----BEGIN RSA PRIVATE KEY-----

PKCS#8ファイルはアルゴリズムを示しておらず、暗号化されている場合もあります。
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


SSL.comをご利用いただきありがとうございます。 ご不明な点がございましたら、メールでお問い合わせください。 Support@SSL.com電話する 1-877-SSL-SECURE、またはこのページの右下にあるチャットリンクをクリックしてください。

SSL.com のニュースレターを購読する

SSL.comからの新しい記事と更新をお見逃しなく

常に最新情報を入手して安全を確保

SSL.com サイバーセキュリティの世界的リーダーであり、 PKI そしてデジタル証明書。サインアップして、最新の業界ニュース、ヒント、製品のお知らせを受け取ります。 SSL.com.

フィードバックをお待ちしております

アンケートにご協力いただき、最近のご購入についてのご意見をお聞かせください。