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 |
|---|---|
| Aktiviert die Datenübertragung per HTTPS. |
| Pfad zum verwendeten (selbstsignierten) Zertifikat. Diese Datei sollte sowohl das Zertifikat als auch den privaten Schlüssel enthalten. |
| Passwort für die verwendete (selbstsignierte) PKCS12-Zertifikatsdatei. |
| 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. |
| 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: falsePassen Sie diese Parameter an:
Parameter | Beschreibung |
|---|---|
| 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 |
| 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 |
| 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.jarPassen Sie diese Parameter an:
Parameter | Beschreibung |
| 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 |
| FQDN (Fully Qualified Domain Name) des Servers , auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht. |
| Aktiviert die Datenübertragung per HTTPS. |
| Pfad zum verwendeten (selbstsignierten) Zertifikat. Diese Datei sollte sowohl das Zertifikat als auch den privaten Schlüssel enthalten. |
| Passwort für die verwendete (selbstsignierte) PKCS12-Zertifikatsdatei. |
| 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. |
| 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 |
| IP-Adresse des Servers, auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht. |
| Aktiviert die Datenübertragung per HTTPS. |
| Pfad zum verwendeten (selbstsignierten) Zertifikat. Diese Datei sollte sowohl das Zertifikat als auch den privaten Schlüssel enthalten. |
| Passwort für die verwendete (selbstsignierte) PKCS12-Zertifikatsdatei. |
| 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. |
| 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 |
| Je nach gewähltem Zertifikat: der FQDN oder die IP-Adresse der enaio® service-manager-Instanz. Es ist auch möglich, den oben konfigurierten Stellen Sie sicher, dass der entsprechende Parameter
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 |
|---|---|
| Pfad zum benutzerdefinierten Stammzertifikat im PEM-Format, z. B. |
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).