Java KeyStore (alternative) (service-manager)

Java KeyStore (alternative) (service-manager)

Konfiguration von enaio® service-manager

application-ssl.yml

Profildatei anlegen

Legen Sie eine neue Profildatei ...\services\service-manager\config\application-ssl.yml an.

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/enaioSelfSignedWithKey.p12' key-store-type: PKCS12   key-store-password: '<password>'   key-alias: '<alias>' key-password: '<keyPassword>'

Passen Sie diese Parameter an:

Parameter

Beschreibung

Parameter

Beschreibung

enabled

Aktiviert die Datenübertragung per HTTPS.

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. Wenn Sie den Prozess wie in Schritt 5 des Abschnitts Beispiele für die Erstellung der selbstsignierten Zertifikate beschrieben befolgt haben, 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: ...\services\service-manager\config\application-ssl.yml. Zertifikate können auf den Hostnamen oder die IP-Adresse ausgestellt werden. Nachfolgend wird sowohl für Zertifikate mit Hostnamen als auch IP-Adresse der einzufügende Code dargestellt. Wählen Sie den zu Ihrem Zertifikat passenden Code aus.

Option A: Hostname-basiertes (Wildcard-)Zertifikat

Bei Verwendung eines Hostname-basierten (Wildcard-)Zertifikats fügen Sie bitte Folgendes am Ende der ...\services\service-manager\config\application-ssl.yml ein:

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

eureka.instance: hostname: '<FQDN>' 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

Option B: IP-Adress-Zertifikat

Alternativ bei Verwendung eines IP-Adress-Zertifikats fügen Sie bitte Folgendes am Ende der ...\services\service-manager\config\application-ssl.yml ein:

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.

 

application-cloud.yml

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

application-cloud.yml (eureka)

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

Passen Sie diese Parameter an:

Parameter

Beschreibung

<FQDN/IP-address>

Abhängig vom Zertifikat wird der FQDN oder die IP-Adresse angegeben. Passen Sie zusätzlich das Protokoll von http zu https an.

application-cloud.yml (andere Endpunkte)

Stellen Sie sicher, dass Sie auch alle anderen Adressen in der Datei ...\services\service-manager\config\application-cloud.yml anpassen,  wenn Sie den FQDN oder die IP-Adresse geändert haben, sowie die Protokolle zu https.

 

servicewatcher-sw.yml

Profil zuordnen

Das Profil der Datei ...\services\service-manager\config\application-ssl.yml wird in der Konfigurationsdatei ...\services\service-manager\config\servicewatcher-sw.yml den gewünschten Microservices zugeordnet.

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

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 das Profil ssl hinzugefügt ist.

Service 'argus'

Für den Service 'argus' als Konfigurationsserver wird die Konfiguration 'Zertifikat einbinden und Eureka-Client konfigurieren' ebenfalls in der Konfigurationsdatei ...\services\service-manager\config\servicewatcher-sw.yml benötigt, analog zu den Werten in der ...\services\service-manager\config\application-ssl.yml.

Hostnamen-basiertes (Wildcard-)Zertifikat

Bei Verwendung eines Hostnamen-basierten (Wildcard-)Zertifikats:

servicewatcher-sw.yml (Hostname-Zertifikat)

eureka.instance: hostname: '<FQDN>' 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

Aktiviert die Datenübertragung per HTTPS.

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 in der Regel am Anfang der Datei.

IP-Adress-Zertifikat

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/enaioSelfSignedWithKey.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

Aktiviert die Datenübertragung per HTTPS.

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 ...\services\service-manager\config\servicewatcher-sw.ymlauch 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 ...\services\service-manager\config\servicewatcher-sw.ymlauf 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 ...\services\service-manager\config\servicewatcher-sw.yml wie folgt angepasst werden:

servicewatcher-sw.yml

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

Passen Sie diese Parameter an: 

Parameter

Beschreibung

<FQDN/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.

Stellen Sie sicher, dass der entsprechende Parameter eureka.instance.prefer-ip-address unter globalEnvironment richtig gesetzt ist:

  • false wenn Hostname (FQDN) verwendet wird

  • true wenn IP-Adresse verwendet wird.

Zudem muss das Protokoll auf https umgestellt werden.

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 sonst das selbstsignierte Zertifikat nicht als vertrauenswürdig eingestuft wird.

Das Einbinden eines Zertifikats kann über die Eingabeaufforderung ...\services\service-manager\<jdk_version>\bin\keytool.exe erfolgen oder alternativ über Tools wie den KeyStore Explorer (siehe auch Erste Schritte und häufig gestellte Fragen).

Eingabeaufforderung

...\services\service-manager\<jdk_version>\bin\keytool.exe -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.

Vor der Aktualisierung sichert das Setup von enaio® service-manager den JDK-TrustStore im Backup-Verzeichnis der Installation von enaio® service-manager. Wenn bei der vorherigen Installation selbstsignierte Zertifikate im JDK-TrustStore hinzugefügt wurden, 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.

Selbstsignierte Zertifikate

Wenn Sie ein selbstsigniertes SSL-Zertifikat in enaio® service-manager verwenden, dann müssen Sie auf allen Clients dessen CA-Stammzertifikat (ggf. Zertifikatskette) in die vertrauenswürdigen Stammzertifizierungsstellen importieren. Ansonsten wird das Zertifikat von allen Clients als nicht vertrauenswürdig eingestuft und ein Verbindungsaufbau, beispielsweise aus enaio® webclient, schlägt fehl. Wenn Sie den Anweisungen auf der Seite Beispiele für die Erstellung der selbstsignierten Zertifikate gefolgt sind, ist das die Datei CustomRootCA.crt.

Service-Endpunkt aktualisieren

Sichern Sie sich die bestehende Konfiguration der Service-Endpunkte.

Nun passen Sie den Service-Endpoint für Direktzugriff der Discovery unter Console Root > EnterpriseManager > ... > Einstellungen > Servereigenschaften > Services im enaio® enterprise-manager an.

Lautet beispielsweise zuvor der Eintrag http://<FQDN_alt>:7261 wird daraus https://<FQDN_neu>:7261 .

Neustart enaio® service-manager und enaio® gateway

Damit die Änderungen wirksam werden, starten Sie das enaio® gateway und dann den enaio® service-manager neu.

 

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/v1110/admin/SAP/de/rm/ssl.htm).