Wie erstelle ich mit OpenSSL für Windows ein Zertifikat?
- Einführung in OpenSSL unter Windows
- Installation von OpenSSL auf Windows
- Schritte zur Erstellung eines Zertifikats mit OpenSSL
- Beispiel: Erstellung eines selbstsignierten Zertifikats
- Alternative: Separates Generieren von Schlüssel und CSR
- Fazit
Einführung in OpenSSL unter Windows
OpenSSL ist ein weitverbreitetes Werkzeug zur Erstellung und Verwaltung von Zertifikaten, Schlüsselpaaren und zur Verschlüsselung von Daten. Obwohl OpenSSL ursprünglich für Unix-basierte Systeme entwickelt wurde, ist es auch für Windows verfügbar und kann unter Windows-Systemen genutzt werden, um digitale Zertifikate zu erzeugen. Diese Zertifikate sind unerlässlich für sichere Kommunikation, beispielsweise bei HTTPS-Verbindungen oder zur Signierung von Software.
Installation von OpenSSL auf Windows
Um OpenSSL unter Windows zu verwenden, muss man zunächst eine passende Installationsversion herunterladen. Es gibt verschiedene Anbieter, die OpenSSL-Binaries für Windows bereitstellen. Ein bekannter Anbieter ist beispielsweise (https://slproweb.com/products/Win32OpenSSL.html), von dem man eine aktuelle Version entsprechend dem Windows-System (32-bit oder 64-bit) herunterladen kann. Nach der Installation sollte der OpenSSL-Befehl in der Eingabeaufforderung (CMD) oder in der PowerShell verfügbar sein.
Schritte zur Erstellung eines Zertifikats mit OpenSSL
Nachdem OpenSSL installiert ist, kann man mit der Erstellung eines Zertifikats beginnen. Voraussetzung ist das Anlegen eines privaten Schlüssels, der für die Sicherheit des Zertifikats unerlässlich ist. Danach wird ein Zertifikatsignieranforderungsdatei (CSR) erstellt, die man an eine Zertifizierungsstelle (CA) senden kann, oder man erstellt direkt ein selbstsigniertes Zertifikat.
Zunächst verwendet man den Befehl `openssl genrsa`, um einen privaten Schlüssel zu generieren. Im Anschluss daran erzeugt man mit `openssl req` die CSR, bei der man verschiedene Angaben zur Organisation, Lokalität und weiteren Details machen muss. Alternativ kann man auch direkt mit `openssl req` und der Option `-x509` ein selbstsigniertes Zertifikat erstellen, was insbesondere für Testzwecke hilfreich ist.
Beispiel: Erstellung eines selbstsignierten Zertifikats
Ein häufig genutztes Szenario ist die Erzeugung eines selbstsignierten Zertifikats, das für Entwicklungs- und Testzwecke verwendet werden kann. Dabei wird ein privater Schlüssel sowie ein X.509-Zertifikat in einer Datei erzeugt. Der Befehl dafür sieht folgendermaßen aus:
openssl req -x509 -newkey rsa:2048 -keyout privater_schluessel.pem -out zertifikat.pem -days 365 -nodes
openssl req -x509 -newkey rsa:2048 -keyout privater_schluessel.pem -out zertifikat.pem -days 365 -nodes
In diesem Befehl generiert OpenSSL simultan einen neuen 2048-Bit RSA-Schlüssel und ein Zertifikat, das für 365 Tage gültig ist. Die Option `-nodes` sorgt dafür, dass der private Schlüssel nicht mit einem Passwort geschützt wird, was allerdings sicherheitstechnisch mit Vorsicht zu genießen ist. Während der Ausführung fragt OpenSSL nach den Details zur Zertifikats-subjekt, wie Land, Bundesland, Ort, Organisation und allgemeiner Name (Common Name).
Alternative: Separates Generieren von Schlüssel und CSR
Alternativ können Schlüssel und CSR auch getrennt erzeugt werden, was bei einer Einbindung in eine professionelle Zertifizierungsinfrastruktur üblich ist. Zunächst wird der private Schlüssel generiert mit:
openssl genrsa -out privater_schluessel.pem 2048openssl req -new -key privater_schluessel.pem -out anfrage.csrerstellt. Diese Anfrage kann dann an eine CA gesendet werden, die darauf ein gültiges Zertifikat zurückgibt. Dieses Zertifikat kann dann für unterschiedlichste Zwecke verwendet werden, wie TLS-Verschlüsselung auf einem Webserver.
Fazit
Die Erstellung von Zertifikaten mit OpenSSL auf Windows ist gut möglich und folgt den gleichen Prinzipien wie unter anderen Betriebssystemen. Wichtig ist die korrekte Installation von OpenSSL, das Verständnis für den Ablauf bei der Schlüssel- und Zertifikatserstellung sowie die Wahl zwischen selbstsignierten oder von einer CA ausgestellten Zertifikaten. Mit der entsprechenden Kommandozeilenkenntnis kann man so einfach und schnell sichere Zertifikate für verschiedenste Anwendungsfälle erzeugen.
