Wie kann man Windows-Zertifikatsspeicher-Verwendung einstellen - Beispiel Gateway-NG (Stichworte: SSL/HTTPS, Windows-Root-Zertifikat)?

Wie kann man Windows-Zertifikatsspeicher-Verwendung einstellen - Beispiel Gateway-NG (Stichworte: SSL/HTTPS, Windows-Root-Zertifikat)?

Stand: 17.04.2026

Eine umfassende Beschreibung (Beschreibung für alles, also alle Kerndienste und Services nach enaio Version) findet man hier:
https://enaiodevelop.atlassian.net/wiki/spaces/TLSSSL

Nachfolgend ein Beispiel für Gateway-NG auf SSL stellen und Windows-Zertifikatsspeicher verwenden. 

Schritt-für-Schritt-Anleitung

Voraussetzung: Es gibt ein Zertifikat, am besten über das AD erstellt (sonst muss das Root-Zertifikat an alle Clients verteilt werden). Es muss enthalten:
SAN (= SubjectAlternativeName), einen Alias-Namen und CN (Domain).   
Empfohlen: auch die IP-Adresse hinzufügen.

1. Zertifikat prüfen

  1. Zur Prüfung aus einem beliebigen Java-BIN-Verzeichnis das Tool keytool.exe verwenden, siehe auch https://enaiodevelop.atlassian.net/wiki/spaces/PS/pages/21424787

  2. Empfehlung: eine BAT-Datei erstellen in einem beliebigen Verzeichnis mit diesem Inhalt:
    <pfad zum gateway>\jdk\bin\keytool.exe -v -list -keystore <pfad zum Zertifikat>\<zertifikatsdatei> > <pfad zum log>\<Info-Datei, z. Bsp. zertinfo.txt> 
    Alternative: CMD aufrufen und den Befehlszeile einfügen und ausführen. 

    Beispiel:

    C:\enaio\services\gateway\jdk\bin\keytool.exe -v -list -keystore "C:\enaio\services\Gateway\apps\os_gateway\config\gw_keystore.pkcs" > C:\temp\zertinfo.txt
    1. Die BAT mit "als Administrator ausführen" ausführen. 

    2. Nun kommt eine Passworteingabe. Das Zertifikats-Passwort eingeben. 

    3. Danach die erstellte Datei mit einem Editor öffnen und prüfen. 

  3. benötigt werden in jedem Fall:
    Zertifikatsname, Passwort des Zertifikates, Alias, Typ, SAN (subject alternative name)

 

2. SSL-config erstellen/anpassen

  1. Ist das Zertifikat in Ordnung, eine Text-Datei erstellen namens application-ssl.yml und in das Servicemanager\config-Verzeichnis kopieren.
    Sofern es bereits eine im Servicemanager\config-Verzeichnis gibt, diese bearbeiten.
    Bitte beachten: Ab enaio 11.10 ändert sich die Konfiguration.

Es muss das Zertifikat konfiguriert werden und Verwendung Windows-Zertifikatsspeicher für Vertrauenswürdigkeit.

  • Den Inhalt der Datei anpassen mit den ermittelten Zertifikatsinfo:
    Zeile2 = Pfad zum Zertifikat, Zeile 3 = Typ des Zertifikats, Zeile 4 = Passwort des Zertifikates, Zeile 6 = Alias des Zertifikates, Zeile 8 = Servername (SAN-Eintrag, standardmäßig FQDN-Name des Servers)

  • prefer-ip-address muss false sein, sofern die IP-Adresse nicht im SAN steht.

  • Die URLs müssen auf https gestellt werden (Zeilen 14-17)

    Beispiel:

    server.ssl:   enabled: true  key-store: 'D:/_Install/Zertifikate/meinzertifikat.p12'   key-store-type: PKCS12   key-store-password: 'optimal'   key-alias: 'ssl-zertifikat'   key-password: 'optimal' eureka.instance:   hostname: 'meinserver.domain.de'   non-secure-port-enabled: false   secure-port-enabled: true   secure-port: "${server.port}"   prefer-ip-address: false   homePageUrl: "https://${eureka.instance.hostname}:${eureka.instance.secure-port}/"   healthCheckUrl: "https://${eureka.instance.hostname}:${eureka.instance.secure-port}/manage/health"   statusPageUrl: "https://${eureka.instance.hostname}:${eureka.instance.secure-port}/manage/info"   secureHealthCheckUrl: "https://${eureka.instance.hostname}:${eureka.instance.secure-port}/manage/health"

     

Ab enaio 11.10 wird die Konfiguration vereinfacht, siehe auch:
https://enaiodevelop.atlassian.net/wiki/spaces/TLSSSL/pages/21105069

Anpassungen:

  • Den Inhalt der Datei anpassen mit den ermittelten Zertifikatsinfo:
    Zeile2 = Pfad zu einer Dummy-Datei, Zeile 3 = Typ des Zertifikats ist Windows-ROOT, Zeile 4 = Passwort des Zertifikates, Zeile 6 = Alias des Zertifikates , Zeile 8 = Servername (SAN-Eintrag, im Normalfall FQDN-Name des Servers)

  • prefer-ip-address muss false sein, sofern die IP-Adresse nicht im SAN steht.

 

Beispiel:

server.ssl:   enabled: true  key-store: 'D:/_Install/Zertifikate/not-used.txt'   key-store-type: Windows-ROOT   key-store-password: 'optimal'   key-alias: 'ssl-zertifikat' eureka.instance:   hostname: 'meinserver.domain.de'   non-secure-port-enabled: false   secure-port-enabled: true   secure-port: "${server.port}"   prefer-ip-address: false

 

  1. Die Datei servicewatcher-sw.yml im Servicemanager\config-Verzeichnis sichern in einem anderen Verzeichnis. Dann die Datei im Servicemanager\config-Verzeichnis anpassen.

    1. Erweiterung (beliebige Stelle, Doppelung vermeiden):

      globalOptions:   - -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT   - -Djavax.net.ssl.trustStore=NONE
    2. Anpassung:
      Den Gateway-NG-Eintrag suchen und Profile ergänzen um "ssl" (Zeile 3):

      - name: gatewayngservice   type: microservice   profiles: prod,cloud,ssl   instances: 1   memory: 512M   port: 4040   path: ${appBase}/gatewayngservice/gatewayngservice-app.jar
  2. Die servicemanagerw.exe aus dem Servicemanager\bin-Verzeichnis starten.
    Bei Tab-Java die Verwendung auf Windows-Zertifikatsspeicher stellen, ansonsten wird das Zertifikat im Java-Speicher (cacert-Datei) gesucht.
    Diese Parameter eintragen:

    -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT -Djavax.net.ssl.trustStore=NONE
    1. Servicemanager beenden und alle Protokolle entfernen. 

    2. Den Servicemanager starten und im services.log prüfen, ob alle Komponenten starten. 
      In der Servicemanager-Adminseite sollte der Dienst nun auch als https bzw. ab 11.10 mit @ gekennzeichnet sein.

  3. Empfehlung: Diese Parameter von Punkt 3 auch  beim Gateway und Appconnector einstellen. 

 

3. Das Zertifikat vertrauenswürdig machen

  1. Das konfigurierte Zertifikat in den Windows-Zertifikatsspeicher importieren.
    Empfehlung: Das ROOT-Zertifikat importieren, siehe Punkt 4 bei
    https://enaiodevelop.atlassian.net/wiki/spaces/PS/pages/21424787. Damit muss bei Ablauf des Zertifikates nur noch das Zertifikat in der Konfigurationsdatei ausgetauscht werden. Ansonsten muss das abgelaufene Zertifikat gelöscht und das neue importiert werden.

    Wichtig: Es muss unter “vertrauenswürdige Stammzertifizierungsstellen“ importiert werden.
    "lokaler Computer - Vertrauenswürdige Herausgeber" (englisch: "trusted publisher") 
    Kontrolle:
    Im Windows nach "Computer-Zertifikate verwalten" suchen und auf vertrauenswürdige Herausgeber gehen. Hier muss das importierte Zertifikat zu finden sein (mit Doppelklick kann man es öffnen und prüfen):

    image-20251209-095240.png

 

 

Beim Austausch des Zertifikates muss das neue Zertifikat nur noch in der application-ssl.yml geändert und in den Windows-Zertifikatsspeicher importiert werden. 

Bei Updates (enaio Versionswechsel) bitte prüfen, ob die Parameter bei der Servicemanager-W-exe noch vorhanden sind. Versionsfixe überschreiben diesen Parameter nicht. 

 

Verwandte Artikel