[4] CSR (証明書署名要求) は、証明書の subject となる者が発行者に対して、 subject の DN や公開鍵などの情報を提供し、証明書の発行を依頼するものです。
[6] CSR は証明書の発行時にのみ利用するものですから、実際の署名や通信などの際には用いません。 発行後は不要になりますし、そもそも CSR のような特定の書式を用いることも PKI としては必須ではありません。しかし多くの CA では証明書発行時に本項で説明する CSR の提出を求めているようです。
[5] RFC 2986 で ASN.1 構文が規定されています。
[28] CSR の内容は証明書の内容と似ています。 証明書に記述されるべき内容の一部を CSR として提出することになるからです。
[19] 証明書拡張が CSR でも使われることがあります。
[20] 属性として
1.2.840.113549.1.9.14
が指定され、
その値の SET
の値として
SEQUENCE OF SEQUENCE { OBJECT IDENTIFIER; OCTET STRING }
が指定される形となります。
[21] critical/non-critical の別は記述できないのでしょうか。
[12] DER または BER で符号化したものの MIME型は
application/pkcs10
です >>10。
拡張子は .p10
です >>10。
[15] 古い実装は application/x-pkcs10
を使っていました >>14。
[7] CSR は通常は Base64 符号化する .pem 形式で保管・送受信されるようです。
[16] .pem
ファイルでは、ラベルとして CERTIFICATE REQUEST
を使わなければなりません >>17。 NEW CERTIFICATE REQUEST
も広く使われているので、そちらにも対応して構いません >>17。
[18] データは、 ASN.1 CertificateRequest
です。
BER でなければなりません。 DER が非常に好ましいです。 >>17
[22] subject となる者 (被発行者) が証明書の発行者に対し提出することが発行者によって要求されることがあります。
[23] 論理的な発行者たる人間が物理的な発行者たる証明書発行ソフトウェアに必要な情報をひとまとめにして渡すために使うことがあります。
[24] CSR は証明書ではありません。 CSR は誰も何かを証明してくれるものではありません。 仮に証明書のかわりに CSR が提出されたとしても、 それを信用してはいけません。
[25] 証明書の発行者は、発行にあたって CSR の内容が正当であることを確認し、 保証する必要があります (それがすなわち証明書の「証明」です)。 CSR 自体にその内容を「証明」する機能はなく、 証明書の発行者がそれが正常で改竄されたものでないと確かめないといけません。
[11] RFC 2314 - PKCS #10: Certification Request Syntax Version 1.5 ( 版) https://tools.ietf.org/html/rfc2314
[1] Certificate signing request - Wikipedia, the free encyclopedia ( 版) http://en.wikipedia.org/wiki/Certificate_signing_request
[2] CSRについて - UPKI電子証明書発行サービス (NetCommons 著, 版) https://certs.nii.ac.jp/faq/Q4/