opensslを使用してpfxをpemに変換する


109

OpenSSLを使用してPFXファイルから.pem CA証明書クライアント証明を生成する方法。

回答:


107

OpenSSLコマンドラインツールを使用できます。次のコマンドでうまくいくはずです

openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts

openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts

ファイルをパスワードで保護したい場合などは、追加のオプションがあります。

ドキュメント全体はこちらで読むことができます


191

Linuxでそれを行う別の視点...これは、HAProxyのようなものがパスフレーズを要求せずに使用できるように、結果の単一ファイルに復号化された秘密鍵が含まれるようにする方法です。

openssl pkcs12 -in file.pfx -out file.pem -nodes

次に、file.pemファイルを使用するようにHAProxyを構成できます。


これは、-nodesオプションが単に秘密鍵の暗号化をバイパスするだけであることに気づくまで、私がこれらの複数の手順を実行していた以前のバージョンからの編集です。しかし、それは単に教えるのを助けるかもしれないので、私はここから離れます。

openssl pkcs12 -in file.pfx -out file.nokey.pem -nokeys
openssl pkcs12 -in file.pfx -out file.withkey.pem
openssl rsa -in file.withkey.pem -out file.key
cat file.nokey.pem file.key > file.combo.pem
  1. 最初のステップでは、PFXを開くためのパスワードの入力を求められます。
  2. 2番目のステップでは、そのプラスと、キーのパスフレーズを作成するように求められます。
  3. 3番目のステップでは、復号化して保存するために作成したパスフレーズを入力するように求められます。
  4. 4番目は、すべてを1つのファイルにまとめます。

次に、file.combo.pemファイルを使用するようにHAProxyを構成できます。

鍵付きのファイルと鍵なしのファイルを示す2つの別々のステップが必要な理由は、暗号化された鍵と復号化された鍵の両方を含むファイルがある場合でも、HAProxyのようなものがパスフレーズを入力するよう求められるためです。それを使用します。


私はopensslに慣れるために時間を費やしていませんが、pem変換には秘密鍵が含まれていませんでした。この編集により、証明書とキーを1つのpemファイルにマージする方法の詳細が提供されました。
ebt 2014

Windowsシステムでは、catの代わりにtypeを使用します
hupseb 2015年

Windowsでは、このバージョンのOpenSSLは次のような場合に簡単に使用できます。slproweb.com
Helge Klein

上記の手順は、PFXをPEMに変換するのに役立ちました。ただし、もう1つの手順を実行する必要がありました。テキストエディターでnokey PEMファイルを開き、チェーンの最後の証明書をファイルの先頭に移動しました。そうでない場合、nginxは証明書について不平を言うエラーをスローし、それらの使用を拒否します。
EugeneRomero 2017年

その場合、catコマンドを並べ替えて最初に配置できます。like:cat file.key file.nokey.pem> file.combo.pem file.key自体に間違った順序で複数がある場合を除きます。しかし、どちらの場合も、プログラムで再配置する可能性があります。
user2415376 2017

11

他の答えは正しく、完全に説明されていますが、それらを理解するのにいくつかの困難を発見しました。ここに私が使用した方法があります(ここから取得):

最初のケース:PFXファイルを証明書と秘密キーの両方を含むPEMファイルに変換するには:

openssl pkcs12 -in filename.pfx -out cert.pem -nodes

2番目のケース:PFXファイルを個別の公開鍵と秘密鍵のPEMファイルに変換するには:

秘密鍵をPFXからPEMファイルに抽出します。

openssl pkcs12 -in filename.pfx -nocerts -out key.pem

証明書をエクスポートします(公開鍵のみを含みます):

openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem

抽出した秘密鍵からパスワード(言い換え)を削除します(オプション)。

openssl rsa -in key.pem -out server.key
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.