# Certificate Signing Request

Ein Certificate Signing Request (CSR; deutsch „Zertifikatsignierungsanforderung“) oder Certification Request ist ein digitaler Antrag, mittels einer digitalen Signatur aus einem öffentlichen Schlüssel und der Identitäts-Information des Antragstellers ein digitales Identitäts-Zertifikat (auch Public-Key-Zertifikat genannt) zu erstellen.

## Ablauf

Ein Certificate Signing Request dient dazu, bei einer Zertifizierungsstelle für X.509-Zertifikate (CA) ein Zertifikat für den öffentlichen Schlüssel des künftigen Besitzers zu beantragen, wobei der private Schlüssel des Antragstellers geheim bleibt.
* Der Antragsteller erzeugt zunächst ein Schlüsselpaar, bestehend aus einen privaten Schlüssel und den zugehörigen öffentlichen Schlüssel.
* Er erzeugt einen elektronischen Zertifikatsantrag (CSR), welcher als wesentliche Komponenten seine Identität und den öffentlichen Schlüssel enthält.
* Er sorgt für den sog. Proof of Possession (POP, Besitz-Nachweis für den zugehörigen privaten Schlüssel), meist in Form einer Selbstsignatur des Antrags.
* Er sendet den CSR an die Registrierungsstelle zur Prüfung. Dabei muss auch ein Nachweis der Authentizität des Antragstellers erbracht werden. Eine Selbstsignatur, wie sie z. B. im PKCS #10-Format für den POP enthalten ist, ist dafür nicht geeignet.
* Die Registrierungsstelle (RA) prüft die Identität (Echtheit) des Antragstellers und die Zulässigkeit seines Antrags (also den CSR mit den Formularangaben und dem enthaltenden öffentlichen Schlüssel und den meist vorhandenen POP) und gibt den CSR bei positivem Ausgang an die Zertifizierungsstelle weiter.
* Die Zertifizierungsstelle stellt dem Antragsteller ein neues öffentliches Zertifikat aus, indem sie eine entsprechende X.509 Datenstruktur mit ihrem privaten Schlüssel signiert, und sendet es (meist wieder über die Registrierungsstelle) an den Antragsteller (= Besitzer).

## Formulardaten

Ein Industriestandard für X.509 CSRs ist PKCS #10. Hingegen ist CRMF weniger verbreitet, aber flexibler. Es erlaubt neben der Selbstsignatur auch andere Arten des Proof-of-Possession, etwa für DH- und KEM-Schlüssel, mit denen man nur Schlüssel vereinbaren bzw. ver- und entschlüsseln, aber nicht signieren kann.
Die Anforderung wird meist unter Verwendung des privaten Schlüssels des Antragstellers erzeugt und besteht aus dem öffentlichen Schlüssel, einem differenzierten Namen und optionalen Attributen. Name und Attribute werden beispielsweise in folgendem Dialog abgefragt:
Dieses Beispiel von OpenSSL bezeichnet den Haupt-Namen des Antragstellers als Common Name. Aus einem Zertifikat und dem zugehörigen privaten Schlüssel des Antragstellers kann seine Anforderung teilweise rekonstruiert werden.
Der Antrag kann im druckbaren Format PEM oder als Binärdatei im Format DER erstellt werden. Die Anforderung wird meist über eine Registrierungsstelle an eine Zertifizierungsstelle (englisch certification authority) (CA) gesendet.

## Normen und Standards

* RFC: <a href='https://datatracker.ietf.org/doc/html/rfc2314' class='extiw' title='rfc:2314'>2314</a> – PKCS #10: Certification Request Syntax Version 1.5. (veraltet, englisch).
* RFC: <a href='https://datatracker.ietf.org/doc/html/rfc2986' class='extiw' title='rfc:2986'>2986</a> – Certification Request Syntax Specification Version 1.7. (englisch).
* RFC: <a href='https://datatracker.ietf.org/doc/html/rfc4210' class='extiw' title='rfc:4210'>4210</a> – Certificate Management Protocol (CMP). (englisch).
* RFC: <a href='https://datatracker.ietf.org/doc/html/rfc4211' class='extiw' title='rfc:4211'>4211</a> – Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF). (englisch).
* RFC: <a href='https://datatracker.ietf.org/doc/html/rfc5967' class='extiw' title='rfc:5967'>5967</a> – The application/pkcs10 Media Type. (Ergänzungen, englisch).