SSL-Zertifikat für enaio® service-manager (enaio 11.0 und älter)

SSL-Zertifikat für enaio® service-manager (enaio 11.0 und älter)

Wenn Sie ein SSL-Zertifikat für die Microservices einbinden wollen, legen Sie eine neue Profildatei an. In diese Profildatei binden Sie das Zertifikat ein und aktivieren HTTPS. Dort wird ebenfalls der Eureka-Client konfiguriert, so dass sich ein Service beim Eureka-Server registriert und seine Endpunkte veröffentlicht. Das neue Profil wird dann über die Konfigurationsdatei servicewatcher-sw.yml den Services zugeordnet. Für den Service 'argus' als Konfigurations-Server wird diese Konfiguration ebenfalls in der Konfigurationsdatei servicewatcher-sw.yml benötigt.

Die folgenden Konfigurationsdateien müssen angepasst werden:

  • application-ssl.yml

  • application-cloud.yml

  • servicewatcher-sw.yml

Windows-Zertifikatsverwaltung

Das benutzerdefinierte CA-Stammzertifikat (ggf. Zertifikatskette) muss ebenfalls in die Windows-Zertifikatsverwaltung aller enaio® server und enaio® clients unter Zertifikate - Lokaler Computer -> Vertrauenswürdige Stammzertifizerungsstellen -> Zertifikate eingebunden werden. Wenn Sie den Anweisungen im Abschnitt Beispiele für die Erstellung der selbstsignierten Zertifikate gefolgt sind, ist das die Datei CustomRootCA.p12.

  • enaio® server: betrifft die Kommunikation mit den Microservices 'search', 'archive' und 'license'.

  • enaio® clients: betrifft die Kommunikation mit den Microservices 'msteams', 'ems-mailstorage' und 'license'.

Selbstsignierte Zertifikate

Wenn Sie ein selbstsigniertes Zertifikat für die enaio®-Komponenten verwenden, muss das benutzerdefinierte CA-Stammzertifikat, das zum Signieren verwendet wird, zum Java KeyStore hinzugefügt werden, da das selbstsignierte Zertifikat sonst als nicht vertrauenswürdig eingestuft wird.

Das Einbinden eines Zertifikats kann über die Eingabeaufforderung erfolgen, alternativ über Tools wie den KeyStore Explorer (siehe auch Erste Schritte und häufig gestellte Fragen).

Eingabeaufforderung

<path_to_servicemanager>\<jdk_version>\bin\keytool -importcert -file <path_to_root_cert_file> -cacerts -alias "enaioroot"

Parameter

Beschreibung

Parameter

Beschreibung

-file

Pfad zum benutzerdefinierten Stammzertifikat im PEM-Format, z. B. CustomRootCA.crt

Achten Sie beim Importieren des benutzerdefinierten CA-Stammzertifikats darauf, dass das Keytool nach dem Passwort für Java KeyStore fragt (Standardwert ist changeit) und nicht nach dem Zertifikatspasswort.

Das Setup von enaio® service-manager sichert den JDK-KeyStore vor der Aktualisierung im Backup-Verzeichnis der Installation von enaio® service-manager. Wenn bei der vorherigen Installation selbstsignierte Zertifikate im JDK-KeyStore hinzugefügt wurden, dann müssen diese entweder nach der Aktualisierung erneut hinzugefügt werden oder das Backup muss wiederhergestellt werden.

Kommerzielle CA-Stammzertifikate sind davon nicht betroffen, da sie immer in der Standardliste der bekannten Zertifikate im KeyStore enthalten sind.

application-ssl.yml

Profildatei anlegen

  1. Fügen Sie eine neue Profildatei in den Ordner \config des enaio® service-manager ein.

  2. Nennen Sie die Datei application-ssl.yml.

Zertifikat einbinden

Fügen Sie die folgende Zeilen hinzu, um das zu verwendende Zertifikat anzugeben:

application-ssl.yml

server.ssl:   enabled: true   key-store: '<fullpath>/keystore/enaioCertificateWithKey.p12'   key-store-type: PKCS12   key-store-password: '<password>'   key-alias: '<alias>'   key-password: '<keyPassword>'

Passen Sie diese Parameter an:

Parameter

Beschreibung

Parameter

Beschreibung

key-store

Pfad zum verwendeten (selbstsignierten) Zertifikat. Diese Datei sollte sowohl das Zertifikat als auch den privaten Schlüssel enthalten.

key‑store‑password

Passwort für die verwendete (selbstsignierte) PKCS12-Zertifikatsdatei. 

key-alias

Anzeigename (Alias) des Zertifikats. Befolgen Sie den Prozess wie in Schritt 5 des Abschnitts Beispiele für die Erstellung der selbstsignierten Zertifikate beschrieben, dann ist es enaiocert oder alternativ der entsprechende Alias des kommerziellen Zertifikats.

key-password

Schlüsselpasswort, falls das Zertifikat entsprechend konfiguriert ist.

Eureka-Client konfigurieren

Die Konfiguration erfolgt in derselben Datei: application-ssl.yml.  Zertifikate können auf den Hostnamen oder die IP-Adresse ausgestellt werden. Die Konfigurationen unterscheiden sich etwas. Siehe auch Beispiele für die Erstellung der selbstsignierten Zertifikate.

Bei Verwendung eines Hostname-basierten (Wildcard-)Zertifikats

application-ssl.yml (Beispiel für den Hostnamen)

eureka.instance: hostname: '<Hostname>' non-secure-port-enabled: false secure-port-enabled: true secure-port: "${server.port}" prefer-ip-address: false

Passen Sie diese Parameter an:

Parameter

Beschreibung

Parameter

Beschreibung

hostname

FQDN (Fully Qualifed Domain Name) des Servers, auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht

Alternativ bei Verwendung eines IP-Adress-Zertifikats:

application-ssl.yml (Beispiel IP-Adresse)

eureka.instance: prefer-ip-address: true ipAddress: <1.2.3.4> non-secure-port-enabled: false secure-port-enabled: true secure-port: "${server.port}"

Passen Sie diese Parameter an:

Parameter

Beschreibung

ipAddress

IP-Adresse des Servers, auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht

Datei application-cloud.yml erweitern

Falls SSL für den Service 'discovery' aktiv ist, dann muss der Parameter eureka.client.service-url.defaultZone in der Konfigurationsdatei application-cloud.yml aus dem Verzeichnis \config von enaio® service-manager wie folgt angepasst werden:

application-cloud.yml (eureka)

eureka.client.service-url.defaultZone: https://<hostname/IP-address>:7261/eureka/

Passen Sie diese Parameter an:

Parameter

Beschreibung

<hostname/IP-address>

Abhängig vom Zertifikat wird der Hostname (FQDN) oder die IP-Adresse angegeben.

application-cloud.yml (andere Endpunkte)

Stellen Sie sicher, das Sie auch alle anderen Adressen in der Datei application-cloud.yml anpassen,  wenn Sie den Hostnamen oder die IP-Adresse geändert haben.

servicewatcher-sw.yml

Profil zuordnen

Das Profil der Datei application-ssl.yml wird in der Konfigurationsdatei servicewatcher-sw.yml aus dem Verzeichnis \config von enaio® service-manager den gewünschten Microservices zugeordnet.

Vergewissern Sie sich, dass Sie das neue SSL-Profil zu allen in der YML-Datei registrierten Services hinzufügen. 

servicewatcher-sw.yml (Beispiel für den admin-service)

applications: - name: adminservice   type: microservice   profiles: prod,cloud,ssl   instances: 1   memory: 128M   port: 7273   path: ${appBase}/adminservice/adminservice-app.jar

Passen Sie diese Parameter an:

Parameter

Beschreibung

profiles

Stellen Sie sicher, dass alle drei benötigten Profile aktiviert sind: prod,cloud,ssl

Service 'argus'

Für den Service ‘argus', als Konfigurations-Server, wird die Konfiguration – Zertifikat einbinden und Eureka-Client konfigurieren – ebenfalls in der Konfigurationsdatei servicewatcher-sw.yml benötigt. Die Konfiguration ist identisch zu jener der Services, muss hier jedoch dupliziert werden, da der ‘argus’ beim Hochfahren ausschließlich die servicewatcher-sw.yml einlesen kann und die SSL-Konfiguration zum Start aktiviert werden muss.

Bei Verwendung eines Hostnamen-basierten (Wildcard-)Zertifikats

servicewatcher-sw.yml (Hostname-Zertifikat)

eureka.instance: hostname: '<Hostname>' non-secure-port-enabled: false secure-port-enabled: true secure-port: "${server.port}" prefer-ip-address: false server.ssl: enabled: true key-store: '<fullpath>/keystore/enaioSelfSignedWithKey.p12' key-store-type: PKCS12 key-store-password: <password> key-alias: <alias> key-password: <keyPassword>

Passen Sie diese Parameter an:

Parameter

Beschreibung

hostname

FQDN (Fully Qualified Domain Name) des Servers , auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht

enabled

true: SSL aktiviert

key-store

Pfad zum verwendeten (selbstsignierten) Zertifikat. Diese Datei sollte sowohl das Zertifikat als auch den privaten Schlüssel enthalten.

key‑store‑password

Passwort für die verwendete (selbstsignierte) PKCS12-Zertifikatsdatei. 

key-alias

Anzeigename (Alias) des Zertifikats, wie in Schritt 5 des Abschnitts Beispiele für die Erstellung der selbstsignierten Zertifikate beschrieben, oder der entsprechende Alias des kommerziellen Zertifikats.

key-password

Schlüsselpasswort, falls das Zertifikat entsprechend konfiguriert ist.

Falls in der Datei vorhanden, auskommentieren oder entfernen Sie die Eigenschaft eureka.instance.prefer-ip-address: true. Sie befindet sich ind er Regel am Anfang der Datei.

Alternativ bei Verwendung eines IP-Adress-Zertifikats:

servicewatcher-sw.yml (IP-Adress-Zertifikat) 

eureka.instance: prefer-ip-address: true ipAddress: <1.2.3.4> non-secure-port-enabled: false secure-port-enabled: true secure-port: "${server.port}" server.ssl: enabled: true key-store: '<fullpath>/keystore/enaioCertificateWithKey.p12' key-store-type: PKCS12 key-store-password: <password> key-alias: <alias> key-password: <keyPassword> eureka.client.service-url.defaultZone: https://${eureka.instance.ipAddress}:7261/eureka/

Passen Sie diese Parameter an:

Parameter

Beschreibung

ipAddress

IP-Adresse des Servers, auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht

enabled

true: SSL aktiviert

key-store

Pfad zum verwendeten (selbstsignierten) Zertifikat. Diese Datei sollte sowohl das Zertifikat als auch den privaten Schlüssel enthalten.

key‑store‑password

Passwort für die verwendete (selbstsignierte) PKCS12-Zertifikatsdatei. 

key-alias

Anzeigename (Alias) des Zertifikats, wie in Schritt 5 des Abschnitts Beispiele für die Erstellung der selbstsignierten Zertifikate beschrieben, oder der entsprechende Alias des kommerziellen Zertifikats.

key-password

Schlüsselpasswort, falls das Zertifikat entsprechend konfiguriert ist

Eureka-Client konfigurieren

Wenn SSL für den Service 'argus' aktiv ist, dann muss der Parameter eureka.client.service-url.defaultZone in der Konfigurationsdatei servicewatcher-sw.yml auch wie folgt angepasst werden:

servicewatcher-sw.yml (eureka-Konfiguration)

eureka.client.service-url.defaultZone: https://${eureka.instance.hostname}:7261/eureka/

Mehrere enaio® service-manager

Laufen mehrere enaio® service-manager auf verschiedenen Rechnern, müssen Sie sicherstellen, dass eureka.client.service-url.defaultZone in der Datei servicewatcher-sw.yml auf den FQDN der Hauptinstanz von Eureka verweist und nicht auf ${eureka.instance.ipAddress}.

Spring Cloud-Konfiguration

Zusätzlich muss der Parameter SPRING_CLOUD_CONFIG_URI in der Konfigurationsdatei servicewatcher-sw.yml wie folgt angepasst werden:

servicewatcher-sw.yml

... globalEnvironment:   SPRING_CLOUD_CONFIG_URI: https://<hostname/IP-address>:${server.port}${spring.cloud.config.server.prefix} ...

Passen Sie diese Parameter an: 

Parameter

Beschreibung

<hostname/IP-address>

Je nach gewähltem Zertifikat der FQDN oder die IP-Adresse der enaio® service-manager-Instanz. Es ist auch möglich, den oben konfigurierten ${eureka.instance.hostname} oder ${eureka.instance.ipAddress} zu verwenden. Bitte aufpassen ob den dementprechenden Parameter eureka.instance.prefer-ip-address unter globalEnvironment richtig gesetzt ist: true wenn Hostname (FQDN) verwendet ist, false wenn IP-Adresse verwendet ist.

Nach den Anpassungen in den Konfigurationsdateien muss enaio® service-manager neu gestartet werden.

enaio® repository-manager für SAP

Die Komponente enaio® repository-manager, die die SAP-Konnektivität bereitstellt, läuft ebenfalls in enaio® service-manager und wird daher zusammen mit den anderen Services konfiguriert. Es sind jedoch zusätzliche Schritte auf SAP-Seite erforderlich, um das neu hinzugefügte SSL-Zertifikat zu registrieren.

Weitere Informationen finden Sie in der Dokumentation zu enaio® repository-manager unter enaio® repository-manager > Installieren > SSL-Konfiguration
(https://help.optimal-systems.com/enaio/v110/admin/SAP/de/rm/ssl.htm)