So prüfen Sie einen CSR
- Fügen Sie die Anforderung von
-----BEGIN CERTIFICATE REQUEST-----bis zur passenden END-Zeile ein oder legen Sie die.csr- bzw..req-Datei im Feld ab. - Prüfen Sie auf der Karte Antragsteller, Alternative Namen (SAN) und Öffentlicher Schlüssel.
- Fügen Sie bei Bedarf den privaten Schlüssel unter dem CSR ein. Seine Karte zeigt nur Schlüsseltyp und -größe sowie einen SPKI-SHA-256-Pin, den Sie mit dem des CSR vergleichen können.
- Nutzen Sie PEM kopieren oder .der herunterladen, wenn das CA-Portal die Anforderung in einer anderen Form verlangt.
Was in einer Zertifikatsanforderung steckt
Ein CSR (PKCS#10) ist klein: ein Antragstellername, ein öffentlicher Schlüssel, optionale Attribute und eine Signatur über alles. Der Decoder listet sie so auf:
| Feld | Hinweise |
|---|---|
| Antragsteller | C=US, O=Example Corp, CN=app.example.com. Bei domainvalidierten Zertifikaten behält die CA nur, was sie geprüft hat, Organisationsfelder fallen also meist weg. |
| Version | Bei PKCS#10 immer v1. |
| Öffentlicher Schlüssel | Typ und Größe, z. B. RSA 2048 oder EC P-256. Dieser Teil landet unverändert im Zertifikat. |
| Signaturalgorithmus | Meist sha256WithRSAEncryption oder ecdsa-with-SHA256. |
| Alternative Namen (SAN), Schlüsselverwendung, Erweiterte Schlüsselverwendung | Angeforderte Erweiterungen. Eine CA kann sie übernehmen, umschreiben oder verwerfen. |
| Attribute | Weitere PKCS#9-Attribute. Ein challengePassword wird als gesetzt gemeldet, sein Wert bleibt verborgen. |
| SPKI-SHA-256-Pin | Hash des öffentlichen Schlüssels. Das ausgestellte Zertifikat hat denselben Pin. |
Fehler, die Sie vor dem Einreichen abfangen sollten
- Keine alternativen Namen (SAN). Browser ignorieren beim Abgleich von Hostnamen den CN. Öffentliche CAs übernehmen den CN meist von sich aus in den SAN; interne CAs oft nicht, und das Ergebnis ist ein Zertifikat, das mit einem Namensfehler scheitert.
- Ein fehlender Name.
www.example.comundexample.comsind zwei verschiedene Einträge. Ein Wildcard*.example.comdecktexample.comselbst nicht ab. - Zu kleiner Schlüssel. Öffentlich vertrauenswürdige CAs verlangen mindestens 2048-Bit-RSA. Ein CSR mit RSA 1024 wird abgelehnt.
- Falscher Schlüssel. Ein CSR, der auf einem anderen Server oder aus einer alten Schlüsseldatei erzeugt wurde, ergibt ein Zertifikat, das Ihr Server nicht verwenden kann. Vergleichen Sie die Pins.
- Tippfehler im Antragsteller. Jetzt billig zu beheben, teuer, nachdem eine OV- oder EV-Validierung gelaufen ist.
Das Tool liest den CSR, prüft aber nicht seine Selbstsignatur. Auch eine abgeschnittene oder bearbeitete Anforderung kann sich noch dekodieren lassen; führen Sie im Zweifel openssl req -verify aus.
Einen CSR mit OpenSSL erstellen und prüfen
Ein neuer RSA-Schlüssel und ein CSR mit zwei Hostnamen in einem Schritt (für -addext OpenSSL 1.1.1 oder neuer):
openssl req -new -newkey rsa:2048 -nodes -keyout app.key -out app.csr \
-subj "/CN=app.example.com" \
-addext "subjectAltName=DNS:app.example.com,DNS:www.app.example.com"
Prüfen Sie ihn samt Signatur und bestätigen Sie, dass er zum Schlüssel passt:
openssl req -in app.csr -noout -text -verify
diff <(openssl req -in app.csr -noout -pubkey) <(openssl pkey -in app.key -pubout) && echo "key matches"
Die Zeile mit -verify gibt bei einer intakten Anforderung Certificate request self-signature verify OK aus. Weitere Rezepte für die Kommandozeile stehen auf der OpenSSL-Seite.
Wie ein CSR in Base64 aussieht
Ein CSR ist DER in PEM verpackt, genau wie ein Zertifikat. Eine RSA-2048-Anforderung hat etwa 650–700 Bytes DER, ihr Base64 beginnt also mit MIIC; eine EC-P-256-Anforderung liegt eher bei 300 Bytes und beginnt mit MIIB. Beginnt das Erhaltene mit MIIC, steht im Header aber CERTIFICATE, ist es ein Zertifikat. Fügen Sie es stattdessen in den Zertifikat-Decoder ein; dasselbe Widget verarbeitet beides und sagt Ihnen, was es gefunden hat.
Häufige Fragen
Wie prüfe ich, welche Domains in einem CSR stehen?
Fügen Sie den CSR ein und sehen Sie sich Alternative Namen (SAN) an. Diese Liste entscheidet, welche Hostnamen das Zertifikat abdeckt; den CN im Antragsteller ignorieren Browser. Fehlt die Zeile, enthält die Anforderung keine SAN-Erweiterung.
Woran erkenne ich, ob ein CSR zu meinem privaten Schlüssel passt?
Fügen Sie CSR und privaten Schlüssel zusammen ein. Zeigen beide Karten denselben SPKI-SHA-256-Pin, teilen sie ein Schlüsselpaar. Mit OpenSSL vergleichen Sie openssl req -in app.csr -noout -pubkey mit openssl pkey -in app.key -pubout.
Enthält ein CSR den privaten Schlüssel?
Nein. Ein CSR enthält den öffentlichen Schlüssel, die angeforderten Namen und eine mit dem privaten Schlüssel erstellte Signatur, die beweist, dass Sie ihn besitzen. Er kann bedenkenlos an eine CA gehen, und der private Schlüssel sollte auf dem Server bleiben.
Was bedeutet NEW CERTIFICATE REQUEST im Header?
Ein älteres Label, das Javas keytool und einige Windows-Tools verwenden. Der Inhalt ist dieselbe PKCS#10-Struktur, und der Decoder liest sie wie jeden anderen CSR.