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.ymlapplication-cloud.ymlservicewatcher-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 |
|---|---|
| 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.
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
Fügen Sie eine neue Profildatei in den Ordner \config des enaio® service-manager ein.
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 |
|---|---|
| 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. 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. |
| 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: 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 |
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 |
| 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.jarPassen Sie diese Parameter an:
Parameter | Beschreibung |
| 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 |
| FQDN (Fully Qualified Domain Name) des Servers , auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht |
|
|
| 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 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 |
| IP-Adresse des Servers, auf dem enaio® service-manager läuft und der dem Alternativnamen (SAN) des Zertifikats entspricht |
|
|
| 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 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 |
| Je nach gewähltem Zertifikat der FQDN oder die IP-Adresse der enaio® service-manager-Instanz. Es ist auch möglich, den oben konfigurierten |
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)