Wie erzeuge ich ein Zertifikatssignierungsanforderung (CSR) mit OpenSSL auf Windows?
- Einleitung
- Vorbereitung
- Erstellen eines privaten Schlüssels
- Erzeugen der CSR
- Prüfung der erzeugten Dateien
- Zusätzliche Hinweise
- Fazit
Einleitung
Eine Zertifikatssignierungsanforderung (Certificate Signing Request, CSR) ist ein verschlüsselter Textblock, der Informationen über den Antragsteller und den öffentlichen Schlüssel enthält. Diese wird an eine Zertifizierungsstelle (CA) gesendet, um ein digitales Zertifikat zu erhalten. Mit OpenSSL, einem weitverbreiteten Kryptographie-Toolkit, kann man unter Windows einfach eine CSR erzeugen.
Vorbereitung
Um eine CSR mit OpenSSL auf Windows zu erstellen, muss OpenSSL zuvor installiert sein. Eine beliebte Methode ist die Verwendung von vorcompilierten Windows-Binaries, beispielsweise von Shining Light Productions. Nach der Installation sollte die OpenSSL-Binary (openssl.exe) über die Eingabeaufforderung oder PowerShell erreichbar sein. Es kann hilfreich sein, den OpenSSL-Ordner zum Systempfad hinzuzufügen oder direkt im Installationsverzeichnis zu arbeiten.
Erstellen eines privaten Schlüssels
Bevor eine CSR generiert werden kann, benötigt man einen privaten Schlüssel. Dieser Schlüssel wird verwendet, um die CSR zu signieren und später das Zertifikat sicher zu nutzen. Zum Erzeugen eines 2048-Bit-RSA-Schlüssels verwenden Sie folgenden Befehl in der Eingabeaufforderung:
openssl genpkey -algorithm RSA -out privater_schluessel.pem -pkeyopt rsa_keygen_bits:2048Alternativ kann auch der ältere Befehl genutzt werden:
openssl genrsa -out privater_schluessel.pem 2048Der private Schlüssel wird in der Datei privater_schluessel.pem gespeichert. Diese Datei sollte sicher aufbewahrt und nicht an Dritte weitergegeben werden.
Erzeugen der CSR
Mit dem privaten Schlüssel können Sie jetzt die CSR erzeugen. Der folgende Befehl fragt beim Aufruf interaktiv verschiedene Informationen ab, die im Zertifikat eingetragen werden, wie der Ländercode, der Firmenname oder der Common Name (häufig der Domainname):
openssl req -new -key privater_schluessel.pem -out zertifikatsanforderung.csrWährend der Ausführung werden Sie nacheinander dazu aufgefordert, verschiedene Felder auszufüllen. Die wichtigsten sind:
Country Name (2 letter code): Zum Beispiel "DE" für Deutschland State or Province Name: Bundesland oder Region Locality Name: Stadt oder Ort Organization Name: Firmen- oder Organisationsname Organizational Unit Name: Abteilung oder Bereich
Common Name: Der vollqualifizierte Domainname (FQDN), z.B. "www.beispiel.de"
Wenn ein bestimmtes Feld nicht ausgefüllt werden soll, kann es einfach mit Enter übersprungen werden.
Prüfung der erzeugten Dateien
Nach erfolgreicher Ausführung stehen zwei wichtige Dateien zur Verfügung: Die private Schlüsseldatei privater_schluessel.pem und die CSR-Datei zertifikatsanforderung.csr. Die CSR-Datei ist eine Textdatei im PEM-Format und beginnt mit -----BEGIN CERTIFICATE REQUEST----- und endet mit -----END CERTIFICATE REQUEST-----. Diese Datei kann so an die Zertifizierungsstelle weitergeleitet werden.
Zusätzliche Hinweise
Wenn Sie viele CSRs automatisiert erzeugen möchten oder bestimmte Felder vordefinieren wollen, können Sie eine Konfigurationsdatei für OpenSSL verwenden, die beim Aufruf mit -config angegeben wird. Darüber hinaus kann die Sicherheit des privaten Schlüssels erhöht werden, indem dieser mit einem Passwort geschützt wird:
openssl genpkey -algorithm RSA -aes256 -out privater_schluessel.pem -pkeyopt rsa_keygen_bits:2048Der Schlüssel wird dann mit einer Passphrase verschlüsselt, die bei der Verwendung abgefragt wird.
Fazit
Die Erzeugung einer CSR unter Windows mit OpenSSL ist eine mehrstufige, aber gut nachvollziehbare Prozedur. Nach der Installation von OpenSSL generiert man zunächst einen privaten Schlüssel und erstellt anschließend basierend darauf die CSR. Die CSR wird dann bei einer CA eingereicht, um ein Zertifikat zu erhalten, das für sichere Kommunikationskanäle wie HTTPS genutzt wird.
