ここからは、移したい証明書が証明書ストアになく、かつ.pfxファイル以外の形式でファイルに保存されているという前提で、それをPEM形式に変換する方法を紹介していく。
拡張子が「.cer」「.crt」であるファイルには通常、テキストまたはバイナリで証明書が格納されている。もし次のようなテキストのブロックが含まれているなら、多くの場合、それはPEM形式である。
PEM形式かどうかOpenSSLで確かめるには、次のコマンドラインを実行してエラーメッセージが表示されないことを確認すればよい。
openssl x509 -inform PEM -text -noout -in <証明書ファイル名>
オプション | 意味 |
---|---|
x509 | 証明書を取り扱うためのコマンド |
-inform PEM | 入力ファイルの形式としてPEMを指定する。デフォルトの形式はPEMなので、通常は指定不要 |
-text | 分かりやすいテキスト形式で証明書の内容を出力する |
-noout | 証明書をファイルに出力しない |
-in <証明書ファイル名> | 入力ファイルの指定(この場合は証明書ファイル) |
PEM形式かどうか確認する際のOpenSSLのオプション |
.cer/.crtファイルをメモ帳などのテキストエディタで開くと文字化けが多数表示される場合、それは「DER(Distinguished Encoding Rules)」と呼ばれるバイナリの形式である可能性が高い。
エクスプローラでDER形式の証明書ファイルをダブルクリックすれば、あとは前述したエクスポートの手順でPEM形式に変換できる。
まず、コマンドプロンプトを開いてDER形式の証明書ファイルがあるフォルダへ移動しておく。
DERからPEMへの変換は、certutil.exeでもOpenSSLでも可能だ。
certutil -f -encode <DER形式の証明書ファイル名> <出力の証明書ファイル名>
オプション | 意味 |
---|---|
-encode | Base 64でエンコード |
DER形式(バイナリ)からPEM形式へ変換する際のcertutil.exeのオプション |
openssl x509 -in <DER形式の証明書ファイル名> -inform DER -out <出力の証明書ファイル名> -outform PEM
オプション | 意味 |
---|---|
-out <出力ファイル名> | 出力ファイルの指定 |
-outform PEM | 出力ファイルの形式としてPEMを指定する(デフォルトがPEM形式なので、通常は明示的に指定する必要はない) |
DER形式(バイナリ)からPEM形式へ変換する際のOpenSSLのオプション |
認証局(証明機関)から発行された証明書をメールで受け取った際、拡張子が「.p7b」である証明書ファイルが添付されていることがある。これは「PKCS(Public-Key Cryptography Standards) #7」と呼ばれる仕様で証明書が保存されているファイルだ。Base 64エンコードのテキスト形式での例を以下に示す(バイナリの場合もある)。
.p7bファイルには、対象の証明書だけではなくCA証明書(Certificate Authority:認証局、証明機関)も含まれていることがある。これをUNIX/Linux系のサーバやサービスで利用するには、各証明書を別々のPEM形式のファイルに保存しなければならないことがよくある。
まずは、対象のメールから添付ファイル(.p7bファイル)をローカルのフォルダに保存する。それをエクスプローラで表示し、.p7bファイルをダブルクリックすると、前述の管理ツールのようなウィンドウが現れる。後は同様の手順でPEM形式にエクスポートできる。
CA証明書のうち、どれがルートCAで、どれが中間CAのものか確認するには、上記の証明書の詳細ダイアログで[証明のパス]タブを選択し、「証明のパス」欄のツリーを確認すればよい。
OpenSSLで.p7bファイルに含まれる各証明書をPEM形式に変換するには、まず次のコマンドラインを実行する。
openssl pkcs7 -in <PKCS #7の証明書ファイル名> -inform PEM -out <出力の証明書ファイル名> -outform PEM -print_certs
オプション | 意味 |
---|---|
pkcs7 | PKCS #7の証明書ファイルを取り扱うためのコマンド |
-print_certs | 入力ファイルに含まれる複数の証明書を出力する |
.p7bファイルから各証明書を取り出す際のOpenSSLのオプション |
出力された証明書ファイルには、次のようにサーバ証明書とCA証明書が並んで記載されているので、テキストエディタで切り出して別々のファイルに保存する。
■この記事と関連性の高い別の記事
■更新履歴
【2022/07/06】証明書ストアの説明とcertutil.exeで変換する方法を追記しました。Windows 11に対応しました。
【2016/02/05】初版公開。
Copyright© Digital Advantage Corp. All Rights Reserved.