Das Generieren von SSL-Zertifikaten kann eine einschüchternde Aufgabe sein, die mit Frustration und Kummer gefüllt ist. Aber es muss nicht so sein! Wenn Sie Windows 10 und OpenSSL haben und ein wenig Hilfe von diesem Tutorial, sind Sie auf dem richtigen Weg.
In diesem Artikel lernen Sie, wie Sie OpenSSL unter Windows 10 installieren. Sobald es installiert ist, werden Sie SSL-Zertifikate generieren, Zertifikate überprüfen und Fehler beheben und zwischen Formaten konvertieren können.
Beginnen wir mit dem Meistern von OpenSSL unter Windows 10 mit PowerShell!
Verwandt: Zertifikate verwalten mit Windows Certificate Manager und PowerShell
Voraussetzungen
In diesem Artikel lernen Sie anhand einer praktischen Herangehensweise. Obwohl OpenSSL historisch gesehen ein Dienstprogramm für Linux-Betriebssysteme ist, können Sie es auch mit Windows verwenden.
- A Windows system with Local Administrator rights – The tutorial will be using Windows 10
- Windows PowerShell 5.1 (wird mit Windows geliefert) oder PowerShell 7
- Chocolatey – Ein Paketmanager für Windows installiert.
- PowerShell ISE, Visual Studio Code oder ein beliebiger Texteditor Ihrer Wahl
Alle Screenshots in diesem Leitfaden wurden mit Windows 10 Build 1909 und PowerShell 7 aufgenommen.
OpenSSL unter Windows 10 mit PowerShell und Chocolatey installieren
Angenommen, Sie haben Chocolatey mithilfe der Installationsanweisungen installiert. Ihre erste Aufgabe besteht darin, OpenSSL unter Windows 10 zu installieren. Öffnen Sie dazu Ihre PowerShell-Konsole und führen Sie den Befehl choco install OpenSSL.Light
wie unten gezeigt aus.

Das war’s! Sie haben OpenSSL nun mit PowerShell installiert.
Ein Arbeitsverzeichnis einrichten
In diesem Tutorial werden einige Zertifikate erstellt, um daraus zu lernen. Um sicherzustellen, dass alle Arbeiten, die Sie hier durchführen, in einem einzigen Ordner durchgeführt werden und später aufgeräumt werden können, erstellen Sie einen solchen Ordner.
In diesem Tutorial werden alle Zertifikate und zugehörigen Dateien im Ordner C:\certs gespeichert. Sie können einen Ordner mit PowerShell erstellen, indem Sie den folgenden Befehl ausführen.
Jetzt ist es an der Zeit, OpenSSL zu konfigurieren.
OpenSSL konfigurieren
Standardmäßig enthält OpenSSL unter Windows 10 keine Konfigurationsdatei. Dies ist beabsichtigt, da es viele Konfigurationsoptionen gibt, die Sie anpassen können. Für dieses Handbuch verwenden Sie eine Beispielkonfiguration, die Sie später an Ihre Sicherheitsanforderungen anpassen können.
Öffnen Sie PowerShell und führen Sie den folgenden Befehl aus. Dieser Befehl lädt eine Beispielkonfigurationsdatei von MIT herunter und speichert sie als openssl.cnf im aktuellen Arbeitsverzeichnis.
Jetzt können Sie die Datei openssl.cnf öffnen und sollten etwas sehen, das wie unten dargestellt aussieht.

Die heruntergeladene Konfiguration funktioniert vorerst wie sie ist. Verwenden Sie die Standardwerte nicht in einer Produktionsumgebung!
Aktualisieren Sie die Umgebungsvariablen des PowerShell-Profils
Um einen reibungslosen Ablauf zu gewährleisten, sollten Sie Ihr PowerShell-Profil unter Windows 10 ändern. Durch das Einrichten einiger Umgebungsvariablen können Sie problemlos zwischen verschiedenen Versionen von OpenSSL wechseln, die Sie möglicherweise installiert haben.
I suggest adding two environment variables to your PowerShell profile called path
and OPENSSL_CONF
. You will update the PATH
environment variable to ensure you can run the openssl binary in any location while on the command line.
Im Folgenden sehen Sie eine Möglichkeit, ein PowerShell-Profil zu erstellen, falls Sie noch keines haben. Dieser Befehl fügt den Pfad zur OpenSSL-Binärdatei zu Ihrem PATH
hinzu und weist den Konfigurationsdateipfad der Variablen OPENSSL_CONF
zu.
Um die Umgebungsvariablen zu verwenden, laden Sie Ihr Profil neu, indem Sie . $profile
eingeben oder PowerShell einfach schließen und erneut öffnen.
Jetzt können Sie das openssl-Binärprogramm problemlos überall in PowerShell aufrufen, wie unten gezeigt.

Verwenden von OpenSSL unter Windows 10 zum Generieren eines CSR und eines privaten Schlüssels
Bevor Sie ein SSL-Zertifikat erstellen können, müssen Sie eine Zertifikatsanforderung (CSR) generieren. Ein CSR ist eine codierte Datei, die Ihnen eine Möglichkeit bietet, Ihren öffentlichen Schlüssel mit einer Zertifizierungsstelle (CA) zu teilen. Diese Datei enthält Identifizierungsinformationen, einen Signaturalgorithmus und eine digitale Signatur. Erstellen wir Ihre erste CSR und Ihren privaten Schlüssel.
Verwandt: Ihr Leitfaden zu X509-Zertifikaten für Sterbliche
Führen Sie den folgenden Befehl aus, um eine CSR zu erstellen. OpenSSL wird Sie dann auffordern, einige Identifizierungsinformationen einzugeben, wie Sie in der folgenden Demonstration sehen können.

Wenn Sie fertig sind, haben Sie eine gültige CSR und einen privaten Schlüssel, die verwendet werden können, um ein SSL-Zertifikat für Sie auszustellen.
Die Standardeinstellungen der Konfigurationsdatei können weiter bearbeitet werden, um diesen Prozess zu vereinfachen, falls Sie nicht jedes Mal Daten eingeben möchten, wenn Sie eine CSR generieren.
Sie können mehr über die verfügbaren CSR-Optionen lesen und Beispielkonfigurationen in den Handbuchseiten anzeigen. OpenSSL hat auch ein aktives GitHub-Repository mit Beispielen.
Generierung von RSA-Schlüsselpaaren
Sie können auch RSA-Schlüsselpaare (öffentlich/privat) mit OpenSSL erstellen. Dazu erstellen Sie zunächst einen privaten Schlüssel mit dem Unterbefehl genrsa
wie unten gezeigt.
Wenn Sie den folgenden Befehl ausführen, generiert OpenSSL unter Windows 10 einen RSA-Privatschlüssel mit einer Schlüssellänge von 2048 Bits. Dieser Schlüssel wird auf moderner Hardware fast sofort generiert. Der resultierende Schlüssel wird im Arbeitsverzeichnis ausgegeben.
Als nächstes generieren Sie einen öffentlichen Schlüssel mit dem zuvor erstellten privaten Schlüssel unter Verwendung des Unterbefehls rsa
. Die folgende Syntax erstellt einen öffentlichen Schlüssel namens rsa.public im Arbeitsverzeichnis aus dem privaten Schlüssel rsa.private.
Generieren eines selbstsignierten Zertifikats
Gelegentlich müssen Sie möglicherweise ein selbstsigniertes Zertifikat generieren. Selbstsignierte Zertifikate sind für den Laborgebrauch in Ordnung, aber nicht sicher für den Einsatz in einer Produktionsumgebung.
Erstellen Sie nun ein selbstsigniertes Zertifikat, bevor Sie zur nächsten Aufgabe übergehen. Geben Sie dazu den folgenden Befehl ein, um ein X509-SSL-Zertifikat zu erstellen. Dieses Zertifikat verwendet SHA256-Kryptographie, ist 365 Tage lang gültig und hat eine RSA-Schlüssellänge von 2048 Bits. Das Zertifikat wird im Arbeitsverzeichnis gespeichert.
Sie sind jetzt bereit, das Zertifikat in einem Browser oder Server zu importieren.
Validierung von CSRs, Zertifikaten und Schlüsseln mit OpenSSL
Das Überprüfen der Informationen in einem CSR, einem privaten Schlüssel, einem Zertifikat oder PKCS#12 kann Ihnen Zeit sparen, wenn Sie SSL-Fehler beheben möchten. Manchmal wurde möglicherweise ein falscher Schlüssel zur Erstellung eines Zertifikats verwendet. Möglicherweise haben Sie auch falsche Identifikationsinformationen im Zertifikat.
Beginnen wir mit der Überprüfung eines CSR unter Verwendung des Befehls req
und einiger Parameter:

Details wie Ländername, Organisationsname und die E-Mail-Adresse, die Sie bei der Erstellung des CSR am Anfang dieser Anleitung angegeben haben, sollten genau übereinstimmen.
Sie können auch ein Zertifikat mithilfe des Unterbefehls x509
und einiger Parameter überprüfen:

Konvertieren von Zertifikaten mit OpenSSL
Es gibt Situationen, in denen eine Anwendung ein bestimmtes Zertifikatsformat nicht verwendet. Dieses Problem kann beispielsweise bei einer Anwendung namens HAproxy auftreten, die ein PEM-Zertifikat erfordert, während Sie möglicherweise ein im DER-Format vorliegendes Zertifikat (.crt .cer .der) haben.
Um die Konvertierung eines Zertifikats zu demonstrieren, konvertieren wir das zuvor erstellte selbstsignierte Zertifikat in das DER-Format (certificate.crt) in das PEM-Format. Verwenden Sie dazu den folgenden Code-Ausschnitt.
Der folgende Befehl verwendet den Unterbefehl x509
mit dem Parameter -inform
, der dem Format der Eingabedatei (-in
) entsprechen sollte, gefolgt vom Ausgabeformat (-out
).
Sie können auch die Reihenfolge umkehren, um das DER-Format aus PEM zu erstellen, wie unten gezeigt.
Und zu guter Letzt können Sie PKCS#12 in PEM und PEM in PKCS#12 konvertieren. Dies ist ein Dateityp, der private Schlüssel und Zertifikate enthält. Verwenden Sie das Unterkommando „pkcs12“, um in das PEM-Format zu konvertieren.
Sie können auch ein PEM-Zertifikat und einen privaten Schlüssel in das PKCS#12-Format konvertieren, indem Sie „-export“ mit einigen zusätzlichen Optionen verwenden. Im folgenden Beispiel exportieren Sie ein PKCS#12-formatiertes Zertifikat mit Ihrem privaten Schlüssel, wobei „SomeCertificate.crt“ als Eingabequelle verwendet wird. Mit dem Optionswert „-certfile“ „MyCACert.crt“ können Sie „SomeCertificate.crt“ überprüfen.
Fehlersuche und Debugging
Jetzt, da Sie CSR’s, Zertifikate und Schlüsselpaare erstellen und konvertieren können, ist es an der Zeit zu lernen, wie man Probleme behebt und debuggt. OpenSSL enthält Befehle, mit denen es ein Kinderspiel ist, Probleme zu beheben.
OpenSSL ermöglicht es Ihnen auch, Zertifikate auf Dateiintegrität zu überprüfen und nach möglicher Datenkorruption zu testen. Mit einem MD5-Prüfsumme können Sie die folgenden Codebeispiele verwenden, um Zertifikate, Schlüssel und CSR’s zu testen:
Sobald Sie den ursprünglichen Hash haben, können Sie diesen mit einem aktuellen Hash vergleichen, um zu überprüfen, ob das Zertifikat nicht verändert oder beschädigt wurde.
Hier ist ein Beispiel dafür, wie dieser Code in PowerShell ausgeführt wird:

Zusammenfassung
In diesem Artikel haben Sie gelernt, wie Sie OpenSSL unter Windows 10 installieren und konfigurieren, CSR, Schlüsselpaar und SSL-Zertifikat erstellen. Sie haben auch gelernt, wie Sie zwischen verschiedenen Zertifikatsformaten konvertieren und grundlegende Fehlerbehebung mit den integrierten Unterbefehlen durchführen können.