Diese Anleitung zeigt Ihnen, wie Sie unter Windows einen CSR (Certificate Signing Request) erstellen, indem Sie die im Betriebssystem enthaltenen Tools verwenden.
Der CSR ist ein PKCS #10-Textblock, der Ihren öffentlichen Schlüssel und Ihre Subjektdaten an die Zertifizierungsstelle übermittelt, die ihn signiert und Ihnen Ihr SSL/TLS-Zertifikat zurücksendet. Der zugehörige private Schlüssel verbleibt auf dem Rechner, der die Anfrage erstellt.
Windows bietet Ihnen drei native Möglichkeiten, einen CSR zu erstellen, und jede davon wird im Folgenden behandelt. Wählen Sie die aus, die zu Ihrem Arbeitsablauf passt:
- Das Zertifikate-MMC-Snap-In (grafisch), das Sie über einen Assistenten führt und es Ihnen ermöglicht, einen Subject Alternative Name hinzuzufügen. Dies ist der Weg, den das ursprüngliche Tutorial behandelte, und der von den meisten Nutzern bevorzugte.
- Das Befehlszeilentool certreq.exe mit einer INF-Datei, das skriptfähig ist, SAN unterstützt und die Standardmethode unter Windows Server ist.
- Die OpenSSL für Windows-Binärdatei (ein separater Download), die den CSR genauso erzeugt wie Linux-Administratoren es tun.
Wenn Sie einen Webserver mit eigenem CSR-Workflow betreiben, verwenden Sie diesen anstelle der allgemeinen Windows-Schritte: siehe die speziellen Anleitungen für IIS und Microsoft Exchange. Die folgenden Schritte gelten für Windows 10, Windows 11 sowie Windows Server 2016 bis 2025; melden Sie sich vor dem Start mit einem Konto mit lokalen Administratorrechten an.
CSR mit dem Zertifikate-MMC-Snap-In erstellen
Die Microsoft Management Console (MMC) ist in jeder unterstützten Windows-Version enthalten und bietet einen Assistenten Benutzerdefinierte Anforderung erstellen, mit dem sich ein CSR mit einem SAN-Eintrag erstellen lässt. Der Assistent speichert den neuen privaten Schlüssel im Zertifikatsspeicher des lokalen Computers, sodass jeder Windows-Dienst auf dem Rechner (IIS, ADFS, RD-Gateway, RDP) das ausgestellte Zertifikat nutzen kann, sobald es installiert ist.
Schritt 1: MMC-Zertifikate-Snap-In für den lokalen Computer öffnen
Drücken Sie Win + R, geben Sie den folgenden Befehl ein und drücken Sie Enter:
mmc
Öffnen Sie in der leeren MMC-Konsole Datei > Snap-In hinzufügen/entfernen. Wählen Sie in der linken Liste Zertifikate, klicken Sie auf Hinzufügen, wählen Sie Computerkonto, klicken Sie auf Weiter, belassen Sie Lokaler Computer ausgewählt und klicken Sie auf Fertig stellen, dann auf OK. Das Zertifikate-Snap-In ist nun am Speicher des lokalen Computers verankert, aus dem Windows-Dienste lesen.
Schritt 2: Eine benutzerdefinierte Zertifikatsanforderung starten
Erweitern Sie im linken Bereich Zertifikate (Lokaler Computer) und klicken Sie mit der rechten Maustaste auf Eigene Zertifikate. Wählen Sie Alle Aufgaben > Erweiterte Vorgänge > Benutzerdefinierte Anforderung erstellen. Der Assistent Zertifikatregistrierung öffnet sich. Klicken Sie auf Weiter.
Wählen Sie auf dem Bildschirm Registrierungsrichtlinie für Zertifikate auswählen die Option Ohne Registrierungsrichtlinie fortfahren unter Benutzerdefinierte Anforderung und klicken Sie auf Weiter. Dies weist Windows an, einen eigenständigen CSR für eine externe CA zu erstellen, anstatt sich bei einer internen Active Directory-Zertifikatdienste-Vorlage zu registrieren.
Schritt 3: Vorlage und Anforderungsformat auswählen
Setzen Sie auf dem Bildschirm Benutzerdefinierte Anforderung die Vorlage auf (Keine Vorlage) CNG-Schlüssel, belassen Sie Anforderungsformat auf PKCS #10 und klicken Sie auf Weiter. CNG (Cryptography Next Generation) ist der moderne Windows-Schlüsselanbieter und die richtige Wahl für neue Anforderungen; die veraltete CSP-Option wird nur zur Kompatibilität mit älteren Anwendungen benötigt.
Erweitern Sie auf dem Bildschirm Zertifikatsinformationen den Pfeil Details neben dem Anforderungseintrag und klicken Sie auf Eigenschaften. Im Dialogfeld Zertifikateigenschaften wird der Rest des CSR konfiguriert.
Schritt 4: Subjekt und Subject Alternative Names ausfüllen
Geben Sie auf der Registerkarte Allgemein einen aussagekräftigen Namen und optional eine Beschreibung ein, damit Sie die ausstehende Anforderung später im Zertifikatspeicher wiedererkennen können.
Wechseln Sie zur Registerkarte Antragsteller. Belassen Sie bei Antragstellername den Typ nur dann auf Vollständiger DN, wenn Sie genau wissen, was Sie tun; für die meisten Bestellungen fügen Sie jede Komponente einzeln über das Dropdown-Menü Typ hinzu. Wählen Sie für jedes der folgenden Attribute den Typ aus, geben Sie den Wert ein und klicken Sie auf Hinzufügen:
- Common Name: der vollqualifizierte Domainname, den Sie absichern möchten, zum Beispiel www.ihredomain.de. Für ein Wildcard-Zertifikat setzen Sie ein Sternchen vor die Stammdomain, zum Beispiel *.ihredomain.de.
- Country: der zweistellige ISO-Ländercode, zum Beispiel US, GB oder DE.
- State: der vollständige Name des Bundeslands oder der Provinz (zum Beispiel Bayern, nicht BY).
- Locality: der vollständige Name der Stadt, in der Ihre Organisation registriert ist (zum Beispiel München, nicht M).
- Organization: der rechtliche Name Ihres Unternehmens, exakt wie eingetragen. Erforderlich für OV- und EV-Zertifikate. Bei Domain-Validation-Zertifikaten (DV) wird dieses Feld ignoriert, sodass ein Platzhalter ausreicht.
Überspringen Sie das Attribut Email. Laut RFC 5280 muss eine E-Mail-Adresse bei neuen Zertifikaten in der Subject-Alternative-Name-Erweiterung (als rfc822Name) angegeben werden, nicht im Distinguished Name des Subjekts, und öffentliche CAs entfernen einen E-Mail-Wert unter Umständen aus dem Subjekt eines TLS-Zertifikats. Wenn Sie sie weglassen, bleibt der CSR sauber.
Setzen Sie im Abschnitt Alternative Namen derselben Registerkarte den Typ auf DNS und fügen Sie jeden Hostnamen hinzu, den das Zertifikat abdecken soll, pro Eintrag ein Klick auf Hinzufügen. Führen Sie hier immer auch den Common Name auf: Browser, .NET, Java, Go und andere moderne TLS-Clients prüfen den Hostnamen strikt anhand der SAN-Liste und ignorieren den Common Name. Ein typisches Webzertifikat verwendet zwei DNS-Einträge:
- ihredomain.de
- www.ihredomain.de
Für eine Wildcard-Bestellung fügen Sie sowohl die Wildcard als auch die Stammdomain hinzu: *.ihredomain.de und ihredomain.de.
Schritt 5: Schlüssel und Signatur konfigurieren
Wechseln Sie zur Registerkarte Privater Schlüssel und erweitern Sie nacheinander jeden Abschnitt.
- Kryptografiedienstanbieter: belassen Sie die Standardauswahl RSA, Microsoft Software Key Storage Provider. Dies ist der moderne CNG-Anbieter für RSA-Schlüssel.
- Schlüsseloptionen: setzen Sie die Schlüsselgröße auf 2048 (das aktuelle Minimum öffentlicher CAs). Wählen Sie 3072 oder 4096 nur, wenn Ihre Richtlinie einen größeren Schlüssel verlangt; der Kompromiss sind etwas langsamere TLS-Handshakes. Aktivieren Sie Privaten Schlüssel als exportierbar markieren, wenn Sie die Option haben möchten, den Schlüssel zu sichern oder das ausgestellte Zertifikat auf einen anderen Server zu verschieben.
- Hash-Algorithmus auswählen: wählen Sie im Abschnitt Hash-Algorithmus auswählen die Option sha256. SHA-1 wird von öffentlichen CAs nicht mehr akzeptiert, und SHA-256 ist der moderne Standard. Lassen Sie das Kontrollkästchen Alternatives Signaturformat verwenden deaktiviert.
Klicken Sie auf OK, um das Eigenschaftendialogfeld zu schließen, und dann im Assistenten auf Weiter.
Schritt 6: CSR-Datei speichern
Setzen Sie auf dem Bildschirm Wo möchten Sie die Offlineanforderung speichern? das Dateiformat auf Base64 (CAs erwarten base64-codiertes PEM, keine Binärdatei). Klicken Sie auf Durchsuchen, wählen Sie einen Ordner, den Sie wiederfinden (ein eigener Ordner C:certs oder der Desktop sind einfacher als der Standard-Windows-Pfad), geben Sie der Datei einen Namen mit der Erweiterung .req oder .txt und klicken Sie auf Speichern. Klicken Sie auf Fertig stellen, um den CSR zu schreiben.
Der Assistent schreibt den CSR in die Datei und speichert den zugehörigen privaten Schlüssel unter Zertifikate (Lokaler Computer) > Zertifikatregistrierungsanforderungen. Löschen Sie diese ausstehende Anforderung nicht: Wenn die CA das ausgestellte Zertifikat zurücksendet, verknüpft Windows es automatisch mit dem wartenden Schlüssel.
Schritt 7: CSR kopieren und bei der CA einreichen
Öffnen Sie die gespeicherte Datei in Notepad. Sie sollten einen Block sehen, der so aussieht:
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDXjCCAkYCAQAwgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh
... (many lines of base64) ...
-----END NEW CERTIFICATE REQUEST-----
Wählen Sie den gesamten Block aus, einschließlich der Zeilen mit fünf Bindestrichen BEGIN NEW CERTIFICATE REQUEST und END NEW CERTIFICATE REQUEST, kopieren Sie ihn und fügen Sie ihn in das CSR-Feld Ihres SSL-Bestellformulars ein.
CSR mit certreq.exe und einer INF-Datei erstellen
Das Befehlszeilentool certreq.exe ist in jeder Version von Windows Server enthalten und auch auf Windows 10- und 11-Clients vorhanden. Es ist die richtige Methode, wenn Sie die CSR-Erstellung skripten, ungewöhnliche Schlüsselparameter setzen oder die Anforderung remote über eine Sitzung erstellen möchten, in der die MMC nicht ausgeführt werden kann. Der Ablauf besteht aus drei Teilen: eine Anforderungs-INF-Datei schreiben, mit certreq -new den CSR erzeugen und den CSR anschließend bei Ihrer CA einreichen.
Schritt 1: Die Anforderungs-INF-Datei erstellen
Öffnen Sie Notepad als Administrator und speichern Sie die folgende Datei als request.inf. Bearbeiten Sie die Zeile Subject und die DNS-Einträge unter [Extensions] entsprechend Ihrer Domain:
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=www.yourdomain.com, O=Your Company, L=San Jose, S=California, C=US"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
HashAlgorithm = SHA256
[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.7.3.1
[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=www.yourdomain.com&"
_continue_ = "dns=yourdomain.com"
Hinweise zu den Werten:
- Subject: eine einzelne Zeile mit den durch Kommas getrennten Komponenten. Verwenden Sie bei C= den zweistelligen ISO-Ländercode und schreiben Sie Bundesland und Stadt vollständig aus.
- KeyLength: mindestens 2048. Setzen Sie 3072 oder 4096, wenn Ihre Richtlinie einen größeren Schlüssel verlangt.
- Exportable = TRUE: ermöglicht es Ihnen, den privaten Schlüssel zusammen mit dem ausgestellten Zertifikat zu exportieren (zur Sicherung oder zur Installation auf einem zweiten Server). Setzen Sie den Wert auf FALSE, wenn der Schlüssel an diesen Rechner gebunden bleiben soll.
- MachineKeySet = TRUE: speichert den Schlüssel im Speicher des lokalen Computers, aus dem Dienste wie IIS lesen. Lassen Sie dies für Server-Workloads aktiviert.
- HashAlgorithm = SHA256: signiert die Anforderung mit SHA-256, dem modernen Standard. Ältere Beispiele verwenden manchmal standardmäßig SHA-1, das von öffentlichen CAs nicht mehr akzeptiert wird.
- 2.5.29.17: die OID für Subject Alternative Name. Fügen Sie pro Hostname eine _continue_-Zeile hinzu; jede Zeile außer der letzten muss mit dem Trennzeichen & enden. Führen Sie hier ebenfalls Ihren Common Name auf, da TLS-Clients anhand der SAN-Liste prüfen.
Schritt 2: Den CSR erzeugen
Öffnen Sie eine erhöhte Eingabeaufforderung oder PowerShell, wechseln Sie in den Ordner, der request.inf enthält, und führen Sie aus:
certreq -new request.inf request.csr
Das Tool erstellt den privaten Schlüssel im Speicher des lokalen Computers und schreibt die PKCS #10-Anforderung in die Datei request.csr. Öffnen Sie die Datei, kopieren Sie den vollständigen Block von BEGIN NEW CERTIFICATE REQUEST bis END NEW CERTIFICATE REQUEST und fügen Sie ihn in Ihr Bestellformular ein.
Wenn die CA das ausgestellte Zertifikat zurücksendet, schließen Sie die Verknüpfung ab mit:
certreq -accept certnew.cer
Dies bindet das ausgestellte Zertifikat an den privaten Schlüssel, der im Speicher gewartet hat, wonach das Zertifikat für jeden Windows-Dienst verfügbar ist, der es benötigt.
CSR unter Windows mit OpenSSL erstellen
Windows liefert OpenSSL nicht mit, aber eine gepflegte Windows-Version ist bei Shining Light Productions erhältlich. Der OpenSSL-Ablauf ist identisch mit dem unter Linux und erzeugt einen Schlüssel und einen CSR als zwei separate Dateien, was nützlich ist, wenn Sie planen, das Zertifikat auf einer Plattform bereitzustellen, die den Windows-Zertifikatspeicher nicht nutzt (zum Beispiel ein Drittanbieter-Reverse-Proxy, Tomcat oder eine eigene Anwendung).
Installieren Sie das Paket Win64 OpenSSL Light (der reguläre Installer reicht für CSR-Arbeiten aus) und kopieren Sie, wenn das Setup danach fragt, die OpenSSL-DLLs in das bin-Verzeichnis von OpenSSL statt in den Windows-Systemordner. Öffnen Sie die Eingabeaufforderung oder PowerShell und bestätigen Sie, dass OpenSSL im Pfad verfügbar ist:
openssl version
Wenn der Befehl nicht gefunden wird, fügen Sie entweder den Installationsordner (üblicherweise C:Program FilesOpenSSL-Win64bin) zu Ihrer PATH-Variable hinzu oder rufen Sie openssl mit dem vollständigen Pfad auf. Erzeugen Sie dann den CSR und den Schlüssel mit einem einzigen Befehl:
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr -subj "/C=US/ST=California/L=San Jose/O=Your Company/CN=www.yourdomain.com" -addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"
Was jede Option bewirkt:
- -newkey rsa:2048 erzeugt einen neuen 2048-Bit-RSA-Schlüssel. Verwenden Sie rsa:4096 für einen größeren Schlüssel, falls Ihre Richtlinie dies verlangt.
- -nodes schreibt den privaten Schlüssel ohne Passphrase, sodass der nutzende Dienst ihn beim Start ohne Aufforderung lesen kann. OpenSSL 3.x hat diese Option in -noenc umbenannt; -nodes funktioniert weiterhin, gilt jedoch als veraltet.
- -keyout und -out benennen die Schlüsseldatei und die CSR-Datei.
- -subj liefert das Subjekt direkt in der Befehlszeile, sodass OpenSSL nicht mit interaktiven Fragen anhält.
- -addext „subjectAltName=…“ fügt die SAN-Liste hinzu. Führen Sie hier ebenfalls den Common Name auf.
OpenSSL 3.x signiert den CSR standardmäßig mit SHA-256, sodass keine zusätzliche Digest-Option nötig ist. Beachten Sie die unterschiedliche Kopfzeile: OpenSSL schreibt -----BEGIN CERTIFICATE REQUEST-----, während der MMC-Assistent und certreq -----BEGIN NEW CERTIFICATE REQUEST----- schreiben. Beide sind gewöhnliche PKCS #10-Anforderungen, und jede CA akzeptiert beide Formen. Behandeln Sie die resultierende Datei yourdomain.key als Geheimnis: Wer sie besitzt, kann sich als Inhaber des Zertifikats ausgeben.
Den CSR vor dem Einreichen überprüfen
Bestätigen Sie Common Name, SAN-Einträge, Schlüsselgröße und Signaturalgorithmus, bevor Sie die Anforderung an Ihre CA senden. Über die Windows-Befehlszeile liest certutil jede CSR-Datei:
certutil -dump request.csr
Wenn Sie OpenSSL installiert haben, gibt der entsprechende Befehl dieselben Details aus:
openssl req -noout -text -in request.csr
Bevorzugen Sie einen Browser? Fügen Sie den Inhalt der Anforderung in den CSR-Decoder von SSL Dragon ein, um Subjekt, SAN-Liste, Schlüsselgröße und Signaturalgorithmus abzulesen. Bestätigen Sie, dass der Common Name mit dem Hostnamen übereinstimmt, den Clients verwenden werden, dass jeder erforderliche Name in der SAN-Liste erscheint und dass der Signaturalgorithmus sha256WithRSAEncryption (oder stärker) ist.
Wenn Sie den CSR lieber außerhalb des Servers erzeugen möchten, erstellt unser CSR-Generator eine Anforderung (mit SAN) aus einem einzigen Formular. Der Kompromiss besteht darin, dass der private Schlüssel in Ihrem Browser erzeugt wird, nicht im Windows-Speicher, sodass Sie, wenn die CA das Zertifikat ausstellt, das Zertifikat und den Schlüssel zu einer .pfx-Datei kombinieren und diese über die Zertifikatsverwaltungskonsole Ihrer Anwendung importieren.
Häufig gestellte Fragen
Wenn Sie einen Windows-Dienst absichern, der aus dem Zertifikatspeicher des lokalen Computers liest (IIS, ADFS, RDP, RD-Gateway, WinRM), verwenden Sie das MMC-Snap-In oder certreq.exe: Beide erstellen den Schlüssel am richtigen Ort, sodass das ausgestellte Zertifikat sofort gebunden werden kann. Wenn Sie einen CSR für eine Nicht-Windows-Plattform vorbereiten oder eine separate Schlüsseldatei benötigen, die Sie auf einen Linux-Server oder ein Drittanbietergerät kopieren können, verwenden Sie OpenSSL unter Windows. Das Ergebnis aller drei Methoden ist derselbe PKCS #10-CSR, den jede öffentliche CA akzeptiert.
Nein. RFC 5280 verlangt, dass bei neuen Zertifikaten eine E-Mail-Adresse in der Subject-Alternative-Name-Erweiterung als rfc822Name angegeben wird, nicht im Distinguished Name des Subjekts. Öffentliche CAs entfernen einen E-Mail-Wert unter Umständen bei der Ausstellung aus dem Subjekt eines TLS-Zertifikats, sodass das Hinzufügen für HTTPS keinen Zweck erfüllt. Lassen Sie das Feld Email im Assistenten oder in der INF-Datei weg.
Bei Verwendung des MMC-Snap-Ins oder certreq.exe, befindet sich der Schlüssel unter Zertifikate (Lokaler Computer) > Zertifikatregistrierungsanforderungen als ausstehende Anforderung und wird automatisch mit dem ausgestellten Zertifikat verknüpft, sobald Sie die Registrierung abschließen. Bei OpenSSL ist der Schlüssel die .key-Datei, die neben dem CSR geschrieben wird; schützen Sie sie wie jedes andere Geheimnis und sichern Sie sie, bevor Sie das Zertifikat bereitstellen.
PowerShell verfügt über kein eigenes CSR-Cmdlet. New-SelfSignedCertificate erstellt ein Schlüsselpaar, erzeugt jedoch ein fertiges selbstsigniertes Zertifikat, keinen CSR, den eine öffentliche CA signieren kann. Der unterstützte Weg, eine Anforderung aus PowerShell zu erstellen, besteht darin, die oben gezeigte INF-Datei zu schreiben und certreq.exe darauf anzuwenden (certreq -new request.inf request.csr). Drittanbieter-Module wie PSPKI verpacken certreq in einer benutzerfreundlicheren Oberfläche, aber das zugrunde liegende Tool bleibt certreq.
Die ausstehende Anforderung und ihr privater Schlüssel verbleiben unter Zertifikate (Lokaler Computer) > Zertifikatregistrierungsanforderungen. Sie richten von sich aus nichts an und beeinträchtigen nichts, sammeln sich jedoch mit der Zeit an. Öffnen Sie das MMC-Zertifikate-Snap-In, überprüfen Sie die ausstehenden Anforderungen und löschen Sie diejenigen, die Sie nicht mehr benötigen; dadurch wird auch der zugehörige Schlüssel entfernt.
Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!
Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10

