Wie kann ich mit OpenSSL unter Windows eine CRL (Certificate Revocation List) erzeugen?
- Voraussetzungen und Vorbereitung
- Einrichtung der openssl.cnf für die CRL-Erstellung
- Vorbereitungen im Dateisystem
- Kommando zum Erzeugen der CRL
- Optionale Schritte: CRL im DER-Format erzeugen
- Widerruf von Zertifikaten und Aktualisierung der CRL
- Zusammenfassung
Das Erzeugen einer Certificate Revocation List (CRL) mit OpenSSL unter Windows ist ein mehrstufiger Prozess, der einige vorbereitende Schritte und eine passende Konfiguration benötigt. Eine CRL ist eine Liste von Zertifikaten, die von einer Zertifizierungsstelle (CA) für ungültig erklärt wurden. Diese wird genutzt, um sicherzustellen, dass Clients keine widerrufenen Zertifikate akzeptieren.
Voraussetzungen und Vorbereitung
Um eine CRL zu erzeugen, benötigen Sie zunächst eine vorhandene CA-Struktur, das heißt eine private CA mit OpenSSL konfiguriert und betriebsbereit. Diese Struktur enthält in der Regel ein Verzeichnis mit Zertifikaten, privaten Schlüsseln, sowie die Datei index.txt, die die aktuell ausgestellten Zertifikate und deren Status verwaltet. Weiterhin gibt es eine Datei namens openssl.cnf, die die Konfiguration für OpenSSL festlegt. Wichtig ist, dass in dieser Konfigurationsdatei der Abschnitt zur CRL-Ausstellung korrekt eingerichtet ist, insbesondere der Parameter crl_extensions sowie die Pfade zur CRL-Datei und zum CRL-Verzeichnis.
Einrichtung der openssl.cnf für die CRL-Erstellung
In der OpenSSL-Konfigurationsdatei (oft openssl.cnf genannt) müssen Sie auf das CA-Umfeld eingehen. Dort definieren Sie einen Abschnitt, z.B. , der unter anderem Parameter wie crl_dir, database, crl (für den Pfad der auszugebenden CRL-Datei) festlegt. Ein weiterer wichtiger Abschnitt ist , der CRL-spezifische Erweiterungen festlegt. Diese Einstellungen steuern, welche Informationen in die CRL geschrieben werden und wo die Datei abgelegt wird.
Vorbereitungen im Dateisystem
In Ihrem CA-Verzeichnis sollten schon folgende Dateien vorhanden sein: index.txt (Register der ausgestellten Zertifikate), serial (für die Seriennummern der Zertifikate), und Ihre CA-Schlüssel sowie das CA-Zertifikat. Um eine CRL zu erzeugen, müssen Sie sich eventuell eine Datei crlnumber anlegen, die die CRL-Nummer enthält und die bei jedem Erzeugen der CRL inkrementiert wird. Diese Datei ist wichtig, um korrekte Versionsangaben der CRL zu gewährleisten. Falls nicht vorhanden, können Sie einfach eine Textdatei anlegen mit dem Inhalt 1000 (oder einer anderen Startnummer).
Kommando zum Erzeugen der CRL
Sobald die oben genannten Voraussetzungen erfüllt sind, können Sie mit folgendem OpenSSL-Befehl die CRL erstellen. Öffnen Sie in Windows die Eingabeaufforderung (cmd) und navigieren Sie in das Verzeichnis, in dem Ihre OpenSSL-CAs eingerichtet sind (bzw. wo openssl.cnf liegt), und führen Sie aus:
openssl ca -gencrl -out crl.pem -config openssl.cnfDieser Befehl nutzt Ihre CA-Konfiguration und erzeugt eine CRL-Datei namens crl.pem. Dabei wird die Datei index.txt ausgewertet, um alle widerrufenen Zertifikate aufzunehmen. Wenn alles korrekt eingerichtet ist, erhalten Sie eine neue CRL, die Sie dann an Clients weitergeben können.
Optionale Schritte: CRL im DER-Format erzeugen
Manche Systeme benötigen die CRL im binären DER-Format statt im PEM-Textformat. Dann können Sie die erzeugte PEM-CRL mit folgendem Befehl konvertieren:
openssl crl -in crl.pem -out crl.der -outform DERDie Datei crl.der entspricht dann einer binären Version der Sperrliste.
Widerruf von Zertifikaten und Aktualisierung der CRL
Wenn Sie ein Zertifikat widerrufen möchten, verwenden Sie den Befehl
openssl ca -revoke cert.pem -config openssl.cnfDabei geben Sie die Zertifikatsdatei an, die widerrufen werden soll. Anschließend sollten Sie eine neue CRL erzeugen, damit die Sperrliste stets aktuell bleibt.
Zusammenfassung
Das Erzeugen einer CRL mit OpenSSL unter Windows erfordert eine korrekte CA-Infrastruktur und eine passende Konfiguration der openssl.cnf. Mit dem Befehl openssl ca -gencrl wird basierend auf der Verwaltungsdatei index.txt eine Sperrliste generiert. Diese kann im PEM- oder optional im DER-Format abgespeichert werden. Für jede Änderung bei widerrufenen Zertifikaten muss die CRL neu erzeugt werden, um die Clients stets mit aktuellen Sperrinformationen zu versorgen.
