[4] [DFN[[[CSR]]]] ([DFN[[RUBYB[[[証明書署名要求]]]@en[certificate signing request]]]])
は、[[証明書]]の [[subject]] となる者が[[発行者]]に対して、 [[subject]] の [[DN]]
や[[公開鍵]]などの情報を提供し、[[証明書]]の[[発行]]を依頼するものです。

[6] [[CSR]] は[[証明書]]の発行時にのみ利用するものですから、実際の署名や通信などの際には用いません。
発行後は不要になりますし、そもそも [[CSR]] のような特定の書式を用いることも [[PKI]]
としては必須ではありません。しかし多くの [[CA]] では[[証明書]]発行時に本項で説明する [[CSR]]
の提出を求めているようです。

* 仕様書

[REFS[
- [3] '''[CITE@en[RFC 2986 - PKCS #10: Certification Request Syntax Specification Version 1.7]] ([TIME[2015-02-08 14:28:35 +09:00]] 版) <https://tools.ietf.org/html/rfc2986>'''
- [10] [CITE@en[RFC 5967 - The application/pkcs10 Media Type]]
([TIME[2015-01-11 17:31:25 +09:00]] 版)
<https://tools.ietf.org/html/rfc5967>
- [17] [CITE@en[RFC 7468 - Textual Encodings of PKIX, PKCS, and CMS Structures]] ([TIME[2015-04-20 12:22:43 +09:00]] 版) <https://tools.ietf.org/html/rfc7468#section-7>
]REFS]

* 構文

[5] [[RFC 2986]] で [[ASN.1]] 構文が規定されています。

[28] 
[[CSR]] の内容は[[証明書]]の内容と似ています。
[[証明書]]に記述されるべき内容の一部を [[CSR]]
として提出することになるからです。

** 拡張

[19] [[証明書拡張]]が [[CSR]] でも使われることがあります。

[20] [[属性]]として
[CODE[1.2.840.113549.1.9.14]] 
が指定され、
その値の [CODE[SET]] の値として
[CODE[SEQUENCE OF SEQUENCE { OBJECT IDENTIFIER; OCTET STRING }]]
が指定される形となります。

[21] [[critical]]/[[non-critical]] の別は記述できないのでしょうか。

* MIME 型

[12] [[DER]] または [[BER]] で[[符号化]]したものの [[MIME型]]は
[CODE(MIME)@en[[[application/pkcs10]]]] です [SRC[>>10]]。
[[拡張子]]は [CODE[[[.p10]]]] です [SRC[>>10]]。

[15] 古い実装は [CODE(MIME)@en[[[application/x-pkcs10]]]] を使っていました [SRC[>>14]]。

* PEM ファイル

[7] [[CSR]] は通常は [[Base64]] [[符号化]]する [[.pem]] 形式で保管・送受信されるようです。

[16] [CODE[[[.pem]]]] ファイルでは、ラベルとして [DFN[[CODE[[[CERTIFICATE REQUEST]]]]]]
を使わなければ[['''なりません''']] [SRC[>>17]]。 [DFN[[CODE[[[NEW CERTIFICATE REQUEST]]]]]]
も広く使われているので、そちらにも対応して構いません [SRC[>>17]]。

[18] データは、 [[ASN.1]] [CODE[[[CertificateRequest]]]] です。
[[BER]] でなければ[['''なりません''']]。 [[DER]] が[RUBYB[非常に好ましいです]@en[strongly preferred]]。 [SRC[>>17]]

[EG[
[8] [[.pem]] ファイルでは
[PRE(code)[
-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----
]PRE]
... と
[PRE(code)[
-----BEGIN NEW CERTIFICATE REQUEST-----
...
-----END NEW CERTIFICATE REQUEST-----
]PRE]
... の2種類のヘッダー・フッターが使われているようです。
]EG]

* 文脈

[22] 
[[subject]] となる者 (被発行者) が[[証明書]]の[[発行者]]に対し提出することが[[発行者]]によって要求されることがあります。

[23] 
論理的な[[発行者]]たる[[人間]]が物理的な[[発行者]]たる[[証明書]][[発行]]ソフトウェアに必要な情報をひとまとめにして渡すために使うことがあります。

* セキュリティー

[24] 
[[CSR]] は[[証明書]]ではありません。 [[CSR]] 
は誰も何かを証明してくれるものではありません。
仮に[[証明書]]のかわりに [[CSR]] が提出されたとしても、
それを信用してはいけません。

[25] 
[[証明書]]の[[発行者]]は、発行にあたって [[CSR]] の内容が正当であることを確認し、
保証する必要があります (それがすなわち証明書の「証明」です)。
[[CSR]] 自体にその内容を「証明」する機能はなく、
[[証明書]]の発行者がそれが正常で改竄されたものでないと確かめないといけません。

[EG[
[26] 
その確認の方法と程度は[[認証局]]の目的と要求される信用度により決まるものです。
分野によっては[[業界団体]]の定めに従うことになります。

[27] 
例えば対面でファイルを受け取るとか、
[[身分証明書]]と突き合わせるとか、
既存の[[証明書]]に対応する[[秘密鍵]]で[[署名]]させるとか。

]EG]

* 歴史

[FIG(quote)[
[FIGCAPTION[
[9] [CITE[RSA Laboratories - PKCS #10: Certification Request Syntax Standard]]
([TIME[2015-04-07 12:23:38 +09:00]] 版)
<http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs10-certification-request-syntax-standard.htm>
]FIGCAPTION]

> This standard describes syntax for a request for certification of a public key, a name, and possibly a set of attributes.

]FIG]

[REFS[
- [13] [CITE@en[RFC 2311 - S/MIME Version 2 Message Specification]] ([TIME[2015-02-08 22:38:58 +09:00]] 版) <https://tools.ietf.org/html/rfc2311>
-- [14] [CITE@en[RFC 2311 - S/MIME Version 2 Message Specification]] ([TIME[2015-02-08 22:38:58 +09:00]] 版) <https://tools.ietf.org/html/rfc2311#appendix-C.1>
]REFS]

[11] [CITE@en[RFC 2314 - PKCS #10: Certification Request Syntax Version 1.5]]
([TIME[2015-03-22 22:07:10 +09:00]] 版)
<https://tools.ietf.org/html/rfc2314>

* メモ

[1] [CITE@en[Certificate signing request - Wikipedia, the free encyclopedia]]
([TIME[2015-03-28 06:50:20 +09:00]] 版)
<http://en.wikipedia.org/wiki/Certificate_signing_request>

[2] [CITE@ja[CSRについて - UPKI電子証明書発行サービス]]
([[NetCommons]] 著, [TIME[2015-04-06 14:22:35 +09:00]] 版)
<https://certs.nii.ac.jp/faq/Q4/>