Beispiele für die Erstellung der selbstsignierten Zertifikate
Wenn Sie sich gegen den Kauf kommerzieller Zertifikate entscheiden, gibt es immer noch die Möglichkeit, selbst signierte Zertifikate zu erstellen.
Diese Option erfordert etwas tiefer gehende Kenntnisse über TLS-Zertifikate und die erforderlichen Werkzeuge.
Im Folgenden finden Sie einige Anleitungen, wie Sie dies beispielhaft tun können.
Tooling
OpenSSL
Für die erfolgreiche Anpassung der Zertifikate wird dringend empfohlen, das Kommandozeilenprogramm OpenSSL in Version 3 oder neuer zu verwenden.
Es ist standardmäßig in allen Linux-Distributionen enthalten und ist auch unter Windows über das WSL (Windows Subsystem for Linux) verfügbar.
Bitte beachten Sie, dass ältere Linux-Distributionen OpenSSL 1.1.1 beinhalten und nicht OpenSSL 3.0, was auch Auswirkungen auf die WSL hat.
Es gibt verschiedene benutzerdefinierte OpenSSL-Builds von Drittanbietern für die Windows-Plattform – wir empfehlen die Verwendung der nativen Version, die von der WSL bereitgestellt wird.
Windows-Subsystem für Linux
Um die WSL auf dem Windows-Computer zu installieren, öffnen Sie die PowerShell und führen Sie den folgenden Befehl aus:
WSL-Installation
wsl --install -d Ubuntu-22.04
Weitere Informationen finden Sie unter https://learn.microsoft.com/de-de/windows/wsl/install.
Selbstsignierte Zertifikate erstellen
Mit diesen Schritten können Sie ein selbstsigniertes SSL-Wildcard-Zertifikat mit einer Gültigkeit von 5 Jahren (1825 Tagen) erstellen.
Notieren Sie sich die Passwörter, die beim Erstellen der privaten Schlüssel und Zertifikate verwendet wurden, da Sie diese später brauchen werden.
Je nach ausgewähltem Verschlüsselungsalgorithmus sollten Sie entweder die RSA- oder die Eliptical Curve (EC)-Option verwenden.
Erstellen Sie den privaten CA-Schlüssel und erzeugen Sie das benutzerdefinierte CA-Stammzertifikat.
Wählen Sie das für die Verschlüsselung der PEM-Datei (.key) verwendete Passwort aus und bewahren Sie es sicher auf.
Wenn Sie bereits über ein benutzerdefiniertes CA-Stammzertifikat verfügen, sollte dieses stattdessen in den nachfolgenden Schritten verwendet werden.
Benutzerdefinierten privaten CA-Schlüssel erstellen
RSA: openssl genrsa -des3 -out CustomRootCA.key 4096 EC: openssl ecparam -genkey -name secp384r1 -out CustomRootCA.key
Benutzerdefiniertes CA-Stammzertifikat erstellen
openssl req -x509 -new -nodes -key CustomRootCA.key -sha256 -days 1825 -out CustomRootCA.crt
Erzeugen Sie den privaten Schlüssel und eine CSR für das Wildcard-Zertifikat.
Benutzerdefinierten privaten enaio®-Schlüssel erstellen
RSA: openssl genrsa -des3 -out enaioSelfSigned.key 4096 EC: openssl ecparam -genkey -name secp384r1 -noout -out enaioSelfSigned.key
CSR (Certificate Signing Request) erstellen
openssl req -new -key enaioSelfSigned.key -extensions v3_ca -out enaioSelfSignedRequest.csr
Erstellen Sie eine Konfigurationsdatei für Erweiterungen
openssl.custom.cfg
, um X509v3 Extended Key Usage und X509v3 Alternativnamen (SAN) anzugeben.OpenSSL Custom Configuration (ersetzen Sie *.customdomain.de durch Ihre Domain)
authorityKeyIdentifier=keyid,issuer basicConstraints = CA:FALSE subjectAltName = DNS:*.customdomain.de extendedKeyUsage = serverAuth
Alternativ kann anstelle des Wildcard-Zertifikats auch eine Liste von Alternativnamen (SAN) angegeben werden:
Benutzerdefinierte OpenSSL-Konfiguration (Liste von Alternativnamen)
authorityKeyIdentifier=keyid,issuer basicConstraints = CA:FALSE subjectAltName = @alt_names extendedKeyUsage = serverAuth [ alt_names ] DNS.1 = sub1.customdomain.de DNS.2 = sub2.othercustomdomain.de IP.1 = 1.2.3.4
Erzeugen Sie das selbstsignierte Wildcard-Zertifikat.
Die .crt-Datei enthält ein X.509-Zertifikat, das in ASCII PEM kodiert ist.Wildcard-Zertifikat mithilfe der CSR erzeugen
openssl x509 -req -in enaioSelfSignedRequest.csr -CA CustomRootCA.crt -CAkey CustomRootCA.key -CAcreateserial -extfile openssl.custom.cfg -out enaioSelfSigned.crt -days 1825 -sha256
Der letzte Schritt besteht darin, einige der generierten Zertifikate in spezielle Formate zu konvertieren, die von bestimmten Systemkomponenten benötigt werden.
Kombinieren Sie das selbstsignierte Wildcard-Zertifikat und seinen privaten Schlüssel zu einer PKCS12-Datei (.p12), die für den Windows-Zertifikatspeicher und den Java-Zertifikatspeicher benötigt wird.
Wählen Sie das Passwort für die Verschlüsselung der PKCS12-Datei (.p12) und bewahren Sie es sicher auf.
Beachten Sie den Anzeigenamen (Alias) des Zertifikats, der mit dem Parameter
-name
angegeben wird und für die Konfiguration der Java-Dienste benötigt wird.Privaten Schlüssel und Zertifikat in .p12 zusammenfassen
openssl pkcs12 -inkey enaioSelfSigned.key -in enaioSelfSigned.crt -export -name "enaiocert" -out enaioSelfSignedWithKey.p12
Konvertieren Sie das benutzerdefinierte Stammzertifikat in das PKCS12-Format (.p12):
PEM in PKCS12 konvertieren
openssl pkcs12 -in CustomRootCA.crt -export -nokeys -out CustomRootCA.p12
Kombinieren Sie das benutzerdefinierte CA-Stammzertifikat und den benutzerdefinierten CA-Stammschlüssel im PKCS12-Format (.p12), das für Elasticsearch benötigt wird:
Privaten Schlüssel der benutzerdefinierten Stammzertifizierungsstelle und das Zertifikat nach .p12 kombinieren
openssl pkcs12 -inkey CustomRootCA.key -in CustomRootCA.crt -export -name "enaioroot" -out CustomRootCAWithKey.p12
Stellen Sie ein spezielles Full-Chain-Zertifikat im PEM-Format (.pem) bereit, das von enaio® server benötigt wird.
Zertifikate zu einer vollständigen PEM-Kette für enaio® server kombinierenopenssl pkcs12 -inkey enaioSelfSigned.key -in enaioSelfSigned.crt -certfile CustomRootCa.crt -export -name "enaiocert" -out enaioSelfSignedFullChainWithKey.p12 openssl pkcs12 -in enaioSelfSignedFullChainWithKey.p12 -out enaioSelfSignedFullChainWithKey.pem
Folgenden Dateien sind jetzt verfügbar, entsprechen den definierten Voraussetzungen und können für den Konfigurationsprozess benutzt werden:
CustomRootCA.crt
undCustomRootCA.p12
– benutzerdefinierte CA-Stammzertifikate im PEM- und PKCS12-Format.enaioSelfSigned.key
– privater Schlüssel des selbstsignierten ZertifikatsenaioSelfSigned.crt
– selbstsigniertes Zertifikat (öffentlicher Schlüssel)enaioSelfSignedWithKey.p12
– selbstsigniertes Zertifikat einschließlich seines privaten Schlüssels im PKCS12-FormatenaioSelfSignedFullChainWithKey.pem
– selbstsigniertes Zertifikat einschließlich seines privaten Schlüssels und der vollständigen Zertifikatskette im PEM-Format