Eine Certificate Signing Request (CSR) ist eine formatierte, digital signierte Nachricht, die Ihren öffentlichen Schlüssel und Identitätsdetails (Domain-Name, Organisation, Land) enthält, aber nicht Ihren privaten Schlüssel. Sie senden sie an eine Zertifizierungsstelle, um ein SSL-Zertifikat anzufordern.
Die CSR beweist, dass Sie den entsprechenden privaten Schlüssel halten, durch eine Selbstsignatur – die CA überprüft diese Signatur, um zu bestätigen, dass Sie den Schlüssel kontrollieren. Das Standardformat ist PKCS#10 (RFC 2986), normalerweise im PEM-Format mit -----BEGIN CERTIFICATE REQUEST----- und -----END CERTIFICATE REQUEST----- Trennzeichen kodiert.
So funktioniert es:
- Sie generieren lokal ein privates/öffentliches Schlüsselpaar (RSA, ECDSA oder Ed25519) – der private Schlüssel verlässt niemals Ihr System.
- Sie erstellen eine CSR mit Ihrem öffentlichen Schlüssel, Domain-Name (Common Name oder Subject Alternative Names), Organisation und Land.
- Sie signieren die CSR mit Ihrem privaten Schlüssel als Beweis, dass Sie ihn kontrollieren.
- Sie reichen die CSR bei einer CA ein (über Webformular, API oder ACME-Protokoll, das von Let's Encrypt verwendet wird).
- Die CA überprüft Ihre Domain-Kontrolle, verifiziert die CSR-Signatur und stellt ein Zertifikat aus, das ihr Vertrauen an Ihren öffentlichen Schlüssel bindet.
Beispiel (OpenSSL):
openssl req -new -newkey rsa:2048 -nodes \
-keyout example.com.key -out example.com.csr \
-subj "/CN=example.com/O=Example Inc/C=US"
Dies erstellt example.com.key (privater Schlüssel – sicher aufbewahren) und example.com.csr (die Anfrage-Datei, die an Ihre CA gesendet wird).
WarningTeilen Sie niemals Ihren privaten Schlüssel. Nur die CSR (oder das ausgestellte Zertifikat) kann sicher an die CA gesendet werden. Wenn Sie den Schlüssel verlieren, können Sie den Verkehr nicht entschlüsseln oder das Zertifikat erneuern, ohne eine neue CSR zu generieren.