証明書ファイルの形式

PEM 形式

このファイルは PEM 形式にエンコードされたファイルで、以下のようなテキストのファイルです。
内容は X.509 であったり、PKCS#7 であったりします。
PEM 形式の X.509 のファイルは Apache (httpd) や OpenSSL で標準のファイル形式として使われています。すなわち -inform オプションなどを使って形式を指定する必要がありません。

     -----BEGIN CERTIFICATE-----
     MIIDaDCCAlCgAwIBAgIBHTANBgkqhkiG9w0BAQUFADA2MQswCQYDVQQGEwJKUDEV
     MBMGA1UEChMMV0lERSBQcm9qZWN0MRAwDgYDVQQDEwdST09UIENBMB4XDTAwMDEy
     NzA3Mzc0N1oXDTA2MDYzMDIzNTk1OVowPjELMAkGA1UEBhMCSlAxFTATBgNVBAoT
     DFdJREUgUHJvamVjdDEYMBYGA1UECxMPbWVtYmVycyBvbmx5IENBMIIBIjANBgkq
     hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAozk91OKDofsbbhLzApfhOa9lEYqbGRII
     GOME6Q8lc4h2StNfOKt3q2TeCQpWZKNAM3KBjGDWOcB6HzgkN+7HB8KvT80AhHgT
     u0hOGGCRPAAllVnMgEnNKidqA9dMQevJYq6LvRUpT52vMQUec8WdK9XFk4ZSxIOo
     KOMY+wrxQDHop/XeZis8Y/d3JCLGFyyy/rraYX5bEyCbXfuMk+LQ7zAxZ19BlAYv
     +6NFSngmnwXTGz0OIRr6KIl9LcCkAAD/muN3rtS7kISkjoOVX4IoztI0vNxk7MF1
     sTqnnfuUHJx3gaD8K1z06ZDmwgEqBPRg29WN4T/UADBomLhqYR6zUQIDAQABo3kw
     dzASBgNVHRMBAQEECDAGAQEBAgEJMA4GA1UdDwEBAAQEAwIB/jA5BgNVHR8BAQAE
     LzAtMCugKaAnhiVodHRwOi8vd3d3LndpZGUuYWQuanAvd2lkZXJvb3RjcmwuY3Js
     MBYGA1UdDgEBAAQMBApWczy6kAL3c+kSMA0GCSqGSIb3DQEBBQUAA4IBAQC7BiGh
     TZzQpqxHsm4uZoNpYblp9oLggNk5DXjg3eGweRZa5IhOwjnyj5jGpvpbhp0FUqli
     Tr65VyRC4ymqSP84gHHTcLC6zyKj2XBlKAli/eBpsHvXShrpccWr6Yb0UV2KntTT
     Qo+OMWI9QPOgPRw6pqbypOq+IsIFeSLbTYYi2Vy8uWUV/KZCg2izYUFE28P9YCt9
     cR8wM2JavqYjh4h+B8p/egVOKSKs0nRANMTx2DUZq5sBpSxAn73uu/WzYLi6rM4T
     mqo+8k1ltDM5gH/a+CR9yY+4VSo7B6h8ijNTInEl6YYOMgJ8S5jvCB0IhUB4aGKy
     WJR+SzGDIQkyGHFp
     -----END CERTIFICATE-----

CERTIFICATE と書かれている場合には内容は X.509 で、CERTIFICATE の部分に PKCS7 と書かれている場合には PKCS#7 です。
OpenSSL を使ってこの形式の証明書ファイルの情報を見るには以下のようにします。

  • X.509 の場合:
$ openssl x509 -in ファイル名 -text

  • PKCS#7 の場合:
$ openssl pkcs7 -in ファイル名 -text


DER 形式

このファイルは DER 形式でバイナリエンコーディングされたもので、内容は X.509 であったり PKCS#7 であったりします。
X.509 であるか PKCS#7 であるかは、OpenSSL コマンドを使って開いてみるとわかります。

実行例:
$ openssl pkcs7 -inform der -in ファイル名 -text
もしくは
$ openssl x509 -inform der -in ファイル名 -text

証明書の情報が表示されれば、指定したサブコマンド名(pkcs7 であれば PKCS#7、x509 であれば X.509)の形式のファイルであることがわかります。

PKCS#7 形式のファイルは、以下のようにして PEM 形式に変換することができます。

$ openssl pkcs7 -inform der -in 変換元ファイル名 -out 変換先ファイル名 -print_certs

X.509 形式のファイルは、以下のようにして PEM 形式に変換することができます。

$ openssl x509 -inform der -in 変換元ファイル名 -outform pem -out 変換先ファイル名 

※なお、OpenSSL は、PEM 形式の X.509 ファイルの"-----BEGIN CERTIFICATE-----"の前の文字列や"-----END CERTIFICATE-----"の後の文字列を無視して扱います。
httpd の設定ファイルや openssl の引数で指定するファイルの前後に文字列が入っていても、問題なく扱うことができます。



タグ:

OpenSSL
最終更新:2007年11月12日 11:44