連載
» 2016年02月05日 05時00分 UPDATE

Tech TIPS:Windows上で、証明書や秘密鍵をPEM形式に変換してエクスポートする (2/2)

[島田広道,デジタルアドバンテージ]
前のページへ 1|2       

●*.pfxファイルからPEM形式で証明書や秘密鍵を取り出す

 .pfxファイルとは、秘密鍵をパスワードで保護しつつ証明書と一緒に格納できる証明書ファイルの一種だ。.p7bファイル同様、ルート証明書や中間証明書も一緒に格納できる。標準仕様としては「PKCS #12」に相当し、「.p12」という拡張子が付けられることもある。

 .pfxファイルの場合、証明書についてはWindowsのGUIで取り出せなくはない。ただ、それにはいったん証明書ストアに.pfxファイル内の証明書をインストールし、そこから逆にエクスポートする手間が必要だ。また、秘密鍵はこの方法だとPEM形式ではエクスポートできない。

 一方、OpenSSLなら次のコマンドラインで証明書も秘密鍵も取り出せる。

C:\temp>openssl pkcs12 -in example5.pfx -out example5.pem -nodes
Enter Import Password: …….pfxファイルにかけられたパスワードを入力する
MAC verified OK



 opensslコマンドの各オプションの意味は次の通りだ。

  • pkcs12: PKCS #12の証明書ファイル(.pfxファイル相当)を取り扱うためのコマンド
  • -nodes: 秘密鍵を暗号化せず平文のまま出力する

 出力されたexample5.pemには、次のように秘密鍵と各証明書が記載されているので、テキストエディタで切り出して別々のファイルに保存する。なお、エクスポートされた秘密鍵は暗号化されていないので、盗み見や漏えいに注意すること。

Bag Attributes
    Microsoft Local Key set: <No Values>
    localKeyID: 01 00 00 00 
    friendlyName: le-f097225a-e813-47a7-ae28-cf284e49c2bf
    Microsoft CSP Name: Microsoft RSA SChannel Cryptographic Provider
Key Attributes
    X509v3 Key Usage: 10 
-----BEGIN PRIVATE KEY----- ……秘密鍵の始まり。ここから切り出す
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDUzgTw5oJXesZ1
……<省略>……
tAtIb/wjsk5DeoeSX871xC8=
-----END PRIVATE KEY----- ……ここまでを秘密鍵として保存する
Bag Attributes
    localKeyID: 01 00 00 00 
……<省略>……
subject=/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.locationsmart.org ……共通名が「*.locationsmart.org」であるサーバ証明書が、この2行下にある
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
-----BEGIN CERTIFICATE----- ……ここから切り出す
MIIFYjCCBEqgAwIBAgIRAN0J06vJswp0KM0TcGrONhkwDQYJKoZIhvcNAQELBQAw
……<省略>……
9hcIrQkheTTWNtyHy15Ac+eKWwryZ/wo3CTDftBkFD2m5AMF2zg=
-----END CERTIFICATE----- ……ここまでをサーバ証明書として保存する
Bag Attributes
    1.3.6.1.4.1.311.17.3.29: 06 F9 58 3C 00 A7 63 C2 3F B9 E0 65 A3 36 6D 55
……<省略>……
subject=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root ……ルート証明書。この2行下にある
issuer=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
-----BEGIN CERTIFICATE----- ……ここから切り出す
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
……<省略>……
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE----- ……ここまでをルート証明書として保存する
Bag Attributes
    1.3.6.1.4.1.311.17.3.20: BB AF 7E 02 3D FA A6 F1 3C 84 8E AD EE 38 98 EC D9 32 32 D4
……<省略>……
subject=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority ……中間証明書の一つ。この2行下にある
issuer=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
-----BEGIN CERTIFICATE----- ……ここから切り出す
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
……<省略>……
pu/xO28QOG8=
-----END CERTIFICATE----- ……ここまでを中間証明書として保存する
Bag Attributes
    1.3.6.1.4.1.311.17.3.20: 90 AF 6A 3A 94 5A 0B D8 90 EA 12 56 73 DF 43 B4 3A 28 DA E7
……<省略>……
subject=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA ……中間証明書の一つ。この2行下にある
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
-----BEGIN CERTIFICATE----- ……ここから切り出す
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
……<省略>……
+AZxAeKCINT+b72x
-----END CERTIFICATE----- ……ここまでを中間証明書として保存する



●証明書ストアに格納されている証明書や秘密鍵を取り出す

 Windowsの証明書ストアに格納されているサーバ証明書とその秘密鍵を取り出すには、.pfxファイルにエクスポートしてから、前述の方法でPEM形式のテキストファイルへ変換すればよい。以下では、.pfxファイルへのエクスポート手順を説明する。

Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その1) Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その1)
まず管理者アカウントでWindowsにログオン(サインイン)してからmmc.exe(マイクロソフト管理コンソール)を起動する。Windows 8/Server 2012以降の場合は、mmc.exeの代わりにcertlm.mscを起動して次の画面に進んでいただきたい。
  (1)mmc.exeの[ファイル]−[スナップインの追加と削除]をクリックする。
  (2)「利用できるスナップイン」から[証明書]を選ぶ。
  (3)[追加]ボタンをクリックする。
  (4)[コンピューター アカウント]を選ぶ。ウィザードを進めて、次の画面では[ローカル コンピューター]を選ぶ。これでサーバ証明書が格納されているローカルコンピュータの証明書ストアが表示される。
Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その2) Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その2)
起動したローカルコンピュータの証明書ストアの管理コンソール。
  (5)[個人]−[証明書]を選ぶ。
  (6)対象のサーバ証明書を選んで右クリックする。
  (7)[すべてのタスク]−[エクスポート]をクリックすると、証明書のエクスポートウィザードが起動する。
Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その3) Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その3)
これはエクスポートウィザードの2番目の画面。
  (8)秘密鍵が必要な場合は、[はい、秘密キーをエクスポートします]を選ぶ。ただし、証明書によっては秘密鍵のエクスポートが禁止されている場合があり、そのときはこの選択肢を選択できない。その場合、秘密鍵のエクスポートは諦め、あらためて移行先のシステムで証明書を要求・生成することを検討すべきだ。
Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その4) Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その4)
これはエクスポートウィザードの3番目の画面。
  (9)一つ前の画面で秘密鍵をエクスポートするよう設定した場合、これが唯一の選択肢となる。
  (10)チェックを入れてオンにする。これにより、信頼の連鎖でつながっているルート証明書と中間証明書もエクスポートされる。
  (11)オフのままにしておく。うかつにチェックを入れてオンにすると、このコンピュータから秘密鍵が削除されてしまい、サーバ証明書として役に立たなくなってしまうからだ。
  (12)チェックを入れてオンにする。これにより、証明書の全プロパティがエクスポートされる。
Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その5) Windowsの証明書ストアから証明書と秘密鍵を.pfxファイルにエクスポートする(その5)
これはエクスポートウィザードの4番目の画面。
  (13)秘密鍵を暗号化して保護するためのパスワードを指定する。あとはエクスポート先のファイル名を指定すれば、ウィザードは完了だ。

 こうして生成された.pfxファイルを、前述の手順でPEM形式に変換し、テキストエディタで各証明書と秘密鍵を切り出せばよい。

「Tech TIPS」のインデックス

Tech TIPS

前のページへ 1|2       

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

Touch Barという新UIを得た「MacBook Pro」、プレゼント!

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。