5. Textual Encoding of Certificates (証明書のテキストエンコーディング)
5. Textual Encoding of Certificates (証明書のテキストエンコーディング)
5.1. Encoding (エンコーディング)
公開鍵証明書は "CERTIFICATE" ラベルを使用してエンコードされます。エンコードされたデータは [RFC5280] のセクション4で説明されている ASN.1 Certificate 構造の BER (DER を強く推奨, 付録B参照) エンコードでなければなりません (MUST)。
-----BEGIN CERTIFICATE-----
MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G
A1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2VydGlmaWNhdGUgYXV0aG9y
aXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdudVRMUyBjZXJ0aWZpY2F0
ZSBhdXRob3JpdHkwHhcNMTEwNTIzMjAzODIxWhcNMTIxMjIyMDc0MTUxWjB9MQsw
CQYDVQQGEwJCRTEPMA0GA1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2Vy
dGlmaWNhdGUgYXV0aG9yaXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdu
dVRMUyBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkwWTATBgcqhkjOPQIBBggqhkjOPQMB
BwNCAARS2I0jiuNn14Y2sSALCX3IybqiIJUvxUpj+oNfzngvj/Niyv2394BWnW4X
uQ4RTEiywK87WRcWMGgJB5kX/t2no0MwQTAPBgNVHRMBAf8EBTADAQH/MA8GA1Ud
DwEB/wQFAwMHBgAwHQYDVR0OBBYEFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqG
SM49BAMCA0gAMEUCIDGuwD1KPyG+hRf88MeyMQcqOFZD0TbVleF+UsAGQ4enAiEA
l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo=
-----END CERTIFICATE-----
図6: 証明書の例
歴史的に, "X509 CERTIFICATE" ラベル, およびあまり一般的ではありませんが "X.509 CERTIFICATE" ラベルが使用されてきました。この文書に準拠するジェネレーターは "CERTIFICATE" ラベルを生成しなければならず (MUST), "X509 CERTIFICATE" または "X.509 CERTIFICATE" ラベルを生成してはなりません (MUST NOT)。パーサーは "X509 CERTIFICATE" または "X.509 CERTIFICATE" を "CERTIFICATE" と同等として扱うべきではありません (SHOULD NOT) が, 後方互換性 (警告と共に) のための有効な例外があるかもしれません。
5.2. Explanatory Text (説明テキスト)
多くのツールが, 他のどのタイプよりも PKIX 証明書の BEGIN 行の前と END 行の後に説明テキストを出力することが知られています。出力される場合, そのようなテキストは証明書に関連すべきであり (SHOULD), 証明書内の鍵データ要素のテキスト表現を提供するなどです。
Subject: CN=Atlantis
Issuer: CN=Atlantis
Validity: from 7/9/2012 3:10:38 AM UTC to 7/9/2013 3:10:37 AM UTC
-----BEGIN CERTIFICATE-----
MIIBmTCCAUegAwIBAgIBKjAJBgUrDgMCHQUAMBMxETAPBgNVBAMTCEF0bGFudGlz
MB4XDTEyMDcwOTAzMTAzOFoXDTEzMDcwOTAzMTAzN1owEzERMA8GA1UEAxMIQXRs
YW50aXMwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAu+BXo+miabDIHHx+yquqzqNh
Ryn/XtkJIIHVcYtHvIX+S1x5ErgMoHehycpoxbErZmVR4GCq1S2diNmRFZCRtQID
AQABo4GJMIGGMAwGA1UdEwEB/wQCMAAwIAYDVR0EAQH/BBYwFDAOMAwGCisGAQQB
gjcCARUDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDAzA1BgNVHQEE
LjAsgBA0jOnSSuIHYmnVryHAdywMoRUwEzERMA8GA1UEAxMIQXRsYW50aXOCASow
CQYFKw4DAh0FAANBAKi6HRBaNEL5R0n56nvfclQNaXiDT174uf+lojzA4lhVInc0
ILwpnZ1izL4MlI9eCSHhVQBHEp2uQdXJB+d5Byg=
-----END CERTIFICATE-----
図7: 説明テキスト付き証明書の例
5.3. File Extension (ファイル拡張子)
PKIX 構造のテキストエンコーディングはどこにでも出現できますが, 多くのツールが PKIX 構造をシリアライズする際にこのエンコーディングを出力するオプションを提供することが知られています。相互運用性を促進し, DER エンコーディングとテキストエンコーディングを分離するために, 証明書のテキストエンコーディングには拡張子 ".crt" を使用すべきです (SHOULD)。実装は, この推奨にもかかわらず, 多くのツールがこのテキストエンコーディングで証明書をエンコードする際にデフォルトで拡張子 ".cer" を使用することに注意すべきです。
このセクションは公式の application/pkix-cert 登録 [RFC2585] を何ら妨げるものではありません (これは "各 '.cer' ファイルには DER フォーマットでエンコードされた正確に1つの証明書が含まれる" と述べています) が, 単に広範囲に及ぶデファクトの代替案を明文化しているだけです。