Beispiele für die Erstellung der selbstsignierten Zertifikate

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.

  1. 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

       

  2. 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

     

  3. 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

     

  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

     

  5. 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

       

  6. 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 kombinieren

    openssl 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 und CustomRootCA.p12 – benutzerdefinierte CA-Stammzertifikate im PEM- und PKCS12-Format.

  • enaioSelfSigned.key – privater Schlüssel des selbstsignierten Zertifikats

  • enaioSelfSigned.crt – selbstsigniertes Zertifikat (öffentlicher Schlüssel)

  • enaioSelfSignedWithKey.p12 – selbstsigniertes Zertifikat einschließlich seines privaten Schlüssels im PKCS12-Format

  • enaioSelfSignedFullChainWithKey.pem – selbstsigniertes Zertifikat einschließlich seines privaten Schlüssels und der vollständigen Zertifikatskette im PEM-Format