SSL-Zertifikat für Services

Gültig für: enaio® Version 10.10

Falls Sie ein SSL-Zertifikat für die Microservices einbinden wollen, dann 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.

Profildatei anlegen

Die Profildatei legen Sie im Verzeichnis \config von enaio® service-manager an. Beispiel: application-ssl.yml

Zertifikat einbinden

server.ssl:
  enabled: true
  key-store: '.../path/keystore/myKeystore.jks'
  key-store-type: jks
  key-store-password: keystorePassword
  key-alias: myAlias
  key-password: keyPassword

Parameter:

enabled true: SSL aktivieren
key-store Pfad zum Zertifikat
key-store-type Zertifikatstyp
key‑store‑password Keystorepasswort
key-alias Alias
key-password Schlüsselpasswort, falls das Zertifikat entsprechend konfiguriert ist

Eureka-Client konfigurieren

Zertifikate können auf den Hostnamen oder die IP-Adresse ausgestellt werden. Die Konfigurationen unterscheiden sich etwas.

Hostname:

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

Parameter, die angepasst werden:

hostname

Hostname als qualifizierter Name

IP-Adresse:

eureka.instance:
  preferIpAddress: true
  ipAddress: 10.1.24.222
  non-secure-port-enabled: false
  secure-port-enabled: true
  secure-port: "${server.port}"
  homePageUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/"
  healthCheckUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/manage/health"
  statusPageUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/manage/info"
  secureHealthCheckUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/manage/health"

Parameter, die angepasst werden:

ipAddress IP-Adresse

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:

Beispiel:

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

Parameter 'profiles' ergänzen: profiles: prod,cloud,ssl

servicewatcher-sw.yml erweitern

Für den Service 'argus' als Konfigurations-Server wird die Konfiguration ‑ Zertifikat einbinden und Eureka-Client konfigurieren ‑ ebenfalls in die Konfigurationsdatei servicewatcher-sw.yml benötigt.

Beispiel für ein Hostnamen-Zertifikat:

eureka.instance:
  hostname: 'hostname'
  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"
 server.ssl:
  enabled: true
  key-store: '.../path/keystore/myKeystore.jks'
  key-store-type: jks
  key-store-password: keystorePassword
  key-alias: myAlias
  key-password: keyPassword

Beispiel für ein IP-Adressen-Zertifikat:

eureka.instance:
  preferIpAddress: true
  ipAddress: 10.1.24.222
  non-secure-port-enabled: false
  secure-port-enabled: true
  secure-port: "${server.port}"
  homePageUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/"
  healthCheckUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/manage/health"
  statusPageUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/manage/info"
  secureHealthCheckUrl: "https://${eureka.instance.ipAddress}:${eureka.instance.secure-port}/manage/health"
 server.ssl:
  enabled: true
  key-store: '.../path/keystore/myKeystore.jks'
  key-store-type: jks
  key-store-password: keystorePassword
  key-alias: myAlias
  key-password: keyPassword

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

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

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

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:

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

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

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