Verschlüsselung per HTTPS
Für den produktiven Einsatz von Enginsight ist eine verschlüsselte Verbindung über HTTPS zur externen Kommunikation (z.B. für die Verbindung aus dem Internet) zwingend notwendig.
Dazu ist es nötig, nginx auf dem Enginsight Applikationsserver zu installieren, Ports für die interne Kommunikation zu definieren, ein SSL/TLS-Zertifikat zu erstellen und dieses in nginx einzurichten.
Bitte beachte: Bei der automatischen Installation des Applikationsservers wird nginx bereits mitinstalliert. Bei der manuellen Installation von Enginsight muss nginx separat installiert werden.
Schematischer Aufbau mit nginx
Der schematische Aufbau von Applikationsserver und Datenbankserver inklusive der verwendeten Protokolle und Ports sieht wie folgt aus:

Auf dem Applikationsserver laufen unter anderem die Docker-Container für die Enginsight Benutzeroberfläche (Container-Name: ui-m1) und für die Enginsight API (Container-Name: server-m2). Der Container ui-m1 verwendet dabei den Port 80, der Container server-m2 den Port 8080.
Diese Ports werden nun internen Ports zugeordnet, und zwar der Container-Port 80 dem internen Port 81 (127.0.0.1:81) und der Container-Port 8080 dem internen Port 82. Die interne Kommunikation läuft dabei über HTTP.
nginx sorgt dafür, dass diese Verbindungen mittels SSL/TLS-Zertifikaten über HTTPS verschlüsselt werden.
Dafür werden für die externe Kommunikation zwei Domains benötigt, die auf die IP-Adresse des Applikationsservers zeigen. Dies ist zum Einen die Domain für die Benutzeroberfläche, <DomainApp>, die auf Port 443 läuft, zum Anderen die Domain für die API, <DomainAPI>, die auf Port 80 läuft.
Wir empfehlen, ein SSL/TLS-Zertifikat der Zertifizierungsstelle Let's Encrypt zu verwenden. Die Nutzung eines eigenen, öffentlich signierten SSL/TLS-Zertifikats ist ebenfalls möglich.
Auf dem Applikationsserver anmelden
Achte darauf, dass du die folgenden Schritte auf dem Enginsight Applikationsserver durchführst.
Melde dich auf dem Enginsight Applikationsserver an, sofern du dies noch nicht getan hast.
Du kannst dies entweder direkt in der Konsole deiner Applikationsserver-VM oder per Fernzugriff über SSH (Secure Shell) von einer anderen Maschine aus tun.
Fahre nun mit den folgenden Schritten fort.
nginx installieren
Bitte beachte: Die manuelle Installation von nginx ist nur bei einer manuellen Enginsight Installation notwendig. Wenn du die die automatische Installation durchführst, wird nginx bereits auf dem Applikationsserver mitinstalliert und du kannst mit der Definierung von Ports für die interne Kommunikation weiter fortfahren.
Installiere nginx mit folgendem Befehl:
Bestätige deine Eingabe mit der Enter-Taste.
Ports für die interne Kommunikation definieren
Bitte beachte: Die Definition von Ports für die interne Kommunikation ist sowohl bei einer manuellen Enginsight Installation als auch bei einer automatischen Installation notwendig.
Damit die interne Kommunikation der Dienste reibungslos funktioniert, müssen die Ports der Docker-Container für die Enginsight Benutzeroberfläche (Container-Name: ui-m1; Port: 80) und für die Enginsight API (Container-Name: server-m2; Port: 8080) internen Ports zugeordnet werden.
Dies ist notwendig, da nginx ansonsten auch Port 80 belegen würde und es dadurch zu einem Fehler beim Systemstart kommen würde.
Nimm dazu die folgenden Schritte vor:
Navigiere mit folgendem Befehl in das Enginsight Installationsverzeichnis:
Bestätige deine Eingabe mit der Enter-Taste.
Öffne mit folgendem Befehl die Docker-Konfigurationsdatei docker-compose.yml :
Bestätige deine Eingabe mit der Enter-Taste.
Navigiere zum Abschnitt ui-m1, um den internen Port für die Enginsight Benutzeroberfläche wie folgt anzupassen:
Navigiere zum Abschnitt server-m2, um den internen Port für die Enginsight API wie folgt anzupassen:
Speichere die Änderungen in der Konfigurationsdatei (Strg+o) und bestätige den Speicherprozess. Schließe die Datei (Strg+x).
Stoppe nun mit folgendem Befehl die Docker-Instanz, damit Port 80 frei wird, um die Konfigurationsänderungen zu übernehmen:
Bestätige deine Eingabe mit der Enter-Taste.
Aktiviere nun nginx mit folgendem Befehl um sicherzustellen, dass es beim Systemstart mitstartet:
Bestätige deine Eingabe mit der Enter-Taste.
Nun musst du das Setup-Skript für den Applikationsserver noch einmal ausführen, um deine Anpassungen zu übernehmen.
Navigiere dazu mit folgendem Befehl in das Enginsight Installationsverzeichnis:
Bestätige deine Eingabe mit der Enter-Taste.
Führe nun mit folgendem Befehl das Setup-Skript neu aus und bestätige alle Abfragen mit der Enter-Taste:
Optional: SSL/TLS-Zertifikat von Let's Encrypt erstellen
Um die externe Kommunikation per HTTPS absichern zu können, benötigst du ein SSL/TLS-Zertifikat. Wir empfehlen, ein Zertifikat von Let's Encrypt zu verwenden.
Bitte beachte: SSL/TLS-Zertifikate von Let's Encrypt sind immer nur 3 Monate lang gültig und müssen entsprechend erneuert werden.
Mehr Informationen, wie du ein SSL/TLS von Let's Encrypt erneuerst, findest du in unserer Knowledge Base: Wie aktualisiere ich in Enginsight ein SSL/TLS-Zertifikat von Let's Encrypt?
Nimm folgende Schritte vor, um ein SSL/TLS-Zertifikat von Let's Encrypt zu erstellen:
Öffne mit folgendem Befehlen die nginx-Konfigurationsdatei:
Befehl bei einer automatischen Installation:
Bestätige deine Eingabe mit der Enter-Taste.
Befehl bei einer manuellen Installation:
Bestätige deine Eingabe mit der Enter-Taste.
Kopiere folgende Vorlage in die Konsole oder das Terminal und ersetze die Platzhalter <DomainAPI> und <DomainApp> entsprechend:
Speichere die Änderungen in der Konfigurationsdatei (Strg + o) und bestätige den Speicherprozess. Schließe die Datei (Strg + x).
Validiere die Änderungen an der nginx-Konfiguration mit folgendem Befehl und bestätige deine Eingabe mit der Enter-Taste:
Wenn die Konfigurationsänderungen erfolgreich sind, erhältst du folgende Meldung:
Starte nun nginx mit folgendem Befehl neu:
Bestätige deine Eingabe mit der Enter-Taste.
Installiere nun Certbot. Dies ist ein Tool, das die Erstellung und Installation von SSL/TLS-Zertifikaten von Let's Encrypt automatisiert. Gib dazu folgenden Befehl ein:
Bestätige deine Eingabe mit der Enter-Taste.
Lege nun mit folgenden Befehlen für die Subdomains ngs-api und ngs-app jeweils einen Ordner an, in dem die Zertifikats-Dateien abgelegt werden:
Bestätige deine Eingaben mit der Enter-Taste.
Erstelle und speichere mit folgenden Befehlen die jeweiligen Zertifikats-Dateien:
Bestätige deine Eingaben jeweils mit der Enter-Taste.
Generiere nun mit folgendem Befehl die Diffie Hellman (DH)-Parameter, mit denen geheime Schlüssel gesichert über einen unsicheren Kommunikationskanal ausgetauscht werden können:
Bestätige deine Eingabe mit der Enter-Taste.
Bitte beachte: Abhängig von der Leistung und Auslastung deines Systems kann die Generierung der DH-Parameter einige Zeit in Anspruch nehmen. Warte ab, bis der Prozess abgeschlossen ist.
SSL/TLS-Zertifikat in nginx hinterlegen
Nun muss das SSL/TLS-Zertifikat in die nginx-Konfigurationsdatei übernommen werden. Die Schritte hierfür unterscheiden sich je nachdem, ob du ein Zertifikat von Let's Encrypt oder ein eigenes öffentlich signiertes Zertifikat verwendest.
Verwendung eines Zertifikats von Let's Encrypt
Bitte beachte: Zertifkate von Let's Encrypt sind 3 Monate gültig. Aktualisiere dein Zertifikat rechtzeitig.
Mehr Informationen, wie du ein SSL/TLS von Let's Encrypt erneuerst, findest du in unserer Knowledge Base: Wie aktualisiere ich in Enginsight ein SSL/TLS-Zertifikat von Let's Encrypt?
Nimm folgende Schritte vor, wenn du ein Zertifikat von Let's Encrypt verwendest:
Öffne mit folgendem Befehlen die nginx-Konfigurationsdatei:
Befehl bei einer automatischen Installation:
Bestätige deine Eingabe mit der Enter-Taste.
Befehl bei einer manuellen Installation:
Bestätige deine Eingabe mit der Enter-Taste.
Vergleiche folgende Vorlage mit der Konfigurationsdatei und bearbeite die markierten Zeilen wie folgt:
Ersetze die Platzhalter
<DomainAPI>und<DomainApp>entsprechend.Ersetze in den Zeilen, die mit
proxy_passbeginnen, die internen Ports gemäß der Angabe.
Bitte beachte: Der Diffie-Hellman-Parameter (dhparam) ist nicht standardmäßig vorhanden und muss erst erstellt werden, da nginx sonst einen Fehler ausgibt. Wie du einen dhparam-Parameter erstellst, findest du im vorherigen Abschnitt Optional: SSL/TLS-Zertifikat von Let's Encrypt erstellen unter Schritt 9.
In unserem Beispiel geben wir zudem eine Schlüssellänge von 2048 Bits an. Diese ist zwar sicher, wir empfehlen jedoch eine Schlüssellänge von 3072 Bits oder 4096 Bits. Passe die Schlüssellänge bei Bedarf entsprechend an. Wir weisen jedoch daraufhin, dass die Erstellung des Schlüssels in diesem Fall wesentlich mehr Zeit in Anspruch nimmt!
Speichere die Änderungen in der Konfigurationsdatei (Strg + o) und bestätige den Speicherprozess. Schließe die Datei (Strg + x).
Validiere die Änderungen an der nginx-Konfiguration mit folgendem Befehl und bestätige deine Eingabe mit der Enter-Taste:
Wenn die Konfigurationsänderungen erfolgreich sind, erhältst du folgende Meldung:
Starte nginx mit folgendem Befehl neu:
Bestätige deine Eingabe mit der Enter-Taste.
Nun musst du das Setup-Skript für den Applikationsserver noch einmal ausführen, um die App-URL sowie die API-URL auf HTTPS umzustellen.
Navigiere dazu mit folgendem Befehl in das Enginsight Installationsverzeichnis:
Bestätige deine Eingabe mit der Enter-Taste.
Führe mit folgendem Befehl das Setup-Skript neu aus:
Gib bei der Abfrage der URIs und URLs die URLs für die Enginsight Benutzeroberfläche und die API wie folgt an:
Enter App URL:
https://<DomainApp>Enter API URL:
https://<DomainAPI>
Bestätige deine Eingaben jeweils mit der Enter-Taste.
Bitte beachte: Wird diese Anpassung nicht vorgenommen oder trägst du versehentlich http:// ein, bleibt die Enginsight Instanz weiterhin nur per HTTP erreichbar, obwohl nginx bereits eine gesicherte Verbindung per HTTPS zur Verfügung stellt!
Fahre nun mit dem Setup des Applikationsservers fort.
Verwendung eines eigenen öffentlich signierten Zertifikats
Bitte beachte: Das Zertifikat muss als komplette Zertifikatskette mit gesondertem Private Key und im PEM-Format vorliegen.
Nimm folgende Schritte vor, wenn du ein eigenes öffentlich signiertes Zertifikat verwendest:
Navigiere auf dem System, auf dem dein eigenes Zertifikat liegt, mit folgendem Befehl in den Ordner, der alle Zertifikats-Dateien enthält:
Bestätige deine Eingabe mit der Enter-Taste.
Lade die Zertifikats-Dateien mit folgendem Befehl auf den Applikationsserver in ein Zielverzeichnis deiner Wahl hoch:
Bestätige deine Eingabe mit der Enter-Taste.
Da die hochgeladenen Zertifikats-Dateien bisher nur für den gerade angemeldeten Benutzer des Applikationsservers, aber nicht für den Webserver lesbar sind, müssen die Zugriffsrechte entsprechend angepasst werden.
Gib dafür folgenden Befehl ein:
Bestätige deine Eingabe mit der Enter-Taste.
Nun kannst du die Konfiguration von nginx anpassen. Öffne dazu mit folgendem Befehl die nginx-Konfigurationsdatei:
Befehl bei einer automatischen Installation:
Bestätige deine Eingabe mit der Enter-Taste.
Befehl bei einer manuellen Installation:
Bestätige deine Eingabe mit der Enter-Taste.
Vergleiche folgende Vorlage mit der Konfigurationsdatei und bearbeite die markierten Zeilen wie folgt:
Ersetze die Platzhalter
<DomainApp>und<DomainAPI>entsprechend.Setze für
<URLEigenerVerzeichnispfad>jeweils die URL des Pfads ein, der zu den Zertifikats-Dateien führt.Ersetze in den Zeilen, die mit
proxy_passbeginnen, die internen Ports gemäß der Angabe.
Speichere die Änderungen in der Konfigurationsdatei (Strg + o) und bestätige den Speicherprozess. Schließe die Datei (Strg + x).
Validiere die Änderungen an der nginx-Konfiguration mit folgendem Befehl und bestätige deine Eingabe mit der Enter-Taste:
Wenn die Konfigurationsänderungen erfolgreich sind, erhältst du folgende Meldung:
Starte nginx mit folgendem Befehl neu:
Bestätige deine Eingabe mit der Enter-Taste.
Nun musst du das Setup-Skript für den Applikationsserver noch einmal ausführen, um die App-URL sowie die API-URL auf HTTPS umzustellen.
Navigiere dazu mit folgendem Befehl in das Enginsight Installationsverzeichnis:
Bestätige deine Eingabe mit der Enter-Taste.
Führe mit folgendem Befehl das Setup-Skript neu aus:
Gib bei der Abfrage der URIs und URLs die URLs für die Enginsight Benutzeroberfläche und die API wie folgt an:
Enter App URL:
https://<DomainApp>Enter API URL:
https://<DomainAPI>
Bestätige deine Eingaben jeweils mit der Enter-Taste.
Bitte beachte: Wird diese Anpassung nicht vorgenommen oder trägst du versehentlich http:// ein, bleibt die Enginsight Instanz weiterhin nur per HTTP erreichbar, obwohl nginx bereits eine gesicherte Verbindung per HTTPS zur Verfügung stellt!
Fahre nun mit dem Setup des Applikationsservers fort.
Verwendung eines selbst signierten Zertifikats oder einer Windows PKI
Mehr Informationen, wie du bei der Verwendung eines selbst signierten Zertifikats oder einer Windows PKI (Public Key Infrastructure) vorgehen musst, findest du in unserer Knowledge Base: Wie hinterlege und konfiguriere ich in Enginsight ein selbst signiertes SSL/TLS-Zertifikat?
Weitere Ressourcen
Knowledge Base
Zuletzt aktualisiert
War das hilfreich?