For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.


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.

Auch die Nutzung eines selbst signierten Zertifikats oder einer Windows PKI ist möglich, wir empfehlen jedoch, ein öffentlich signiertes Zertifikat zu verwenden.


Auf dem Applikationsserver anmelden

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

Installiere nginx mit folgendem Befehl:

Bestätige deine Eingabe mit der Enter-Taste.


Ports für die interne Kommunikation definieren

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:

1

Navigiere mit folgendem Befehl in das Enginsight Installationsverzeichnis:

Bestätige deine Eingabe mit der Enter-Taste.

2

Öffne mit folgendem Befehl die Docker-Konfigurationsdatei docker-compose.yml :

Bestätige deine Eingabe mit der Enter-Taste.

3

Navigiere zum Abschnitt ui-m1, um den internen Port für die Enginsight Benutzeroberfläche wie folgt anzupassen:

4

Navigiere zum Abschnitt server-m2, um den internen Port für die Enginsight API wie folgt anzupassen:

5

Speichere die Änderungen in der Konfigurationsdatei (Strg+o) und bestätige den Speicherprozess. Schließe die Datei (Strg+x).

6

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.

7

Aktiviere nun nginx mit folgendem Befehl um sicherzustellen, dass es beim Systemstart mitstartet:

Bestätige deine Eingabe mit der Enter-Taste.

8

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.

9

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

Bitte beachte: Wenn du ein eigenes, öffentlich signiertes SSL/TLS-Zertifikat verwenden möchtest, kannst du dieses Teilkapitel überspringen und direkt hier weiter fortfahren. Ansonsten ist die Erstellung eines SSL/TLS-Zertifikats von Let's Encrypt sowohl bei einer manuellen Enginsight Installation als auch bei einer automatischen Installation notwendig.

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.

lightbulb

Nimm folgende Schritte vor, um ein SSL/TLS-Zertifikat von Let's Encrypt zu erstellen:

1

Ö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.

2

Kopiere folgende Vorlage in die Konsole oder das Terminal und ersetze die Platzhalter <DomainAPI> und <DomainApp> entsprechend:

3

Speichere die Änderungen in der Konfigurationsdatei (Strg + o) und bestätige den Speicherprozess. Schließe die Datei (Strg + x).

4

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:

5

Starte nun nginx mit folgendem Befehl neu:

Bestätige deine Eingabe mit der Enter-Taste.

6

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.

7

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:

Vergiss dabei nicht, <DomainAPI> und <DomainApp> entsprechend zu ersetzen.

Bestätige deine Eingaben mit der Enter-Taste.

8

Erstelle und speichere mit folgenden Befehlen die jeweiligen Zertifikats-Dateien:

Vergiss dabei nicht, <DomainAPI> und <DomainApp> entsprechend zu ersetzen.

Bestätige deine Eingaben jeweils mit der Enter-Taste.

9

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.


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

lightbulb

Nimm folgende Schritte vor, wenn du ein Zertifikat von Let's Encrypt verwendest:

1

Ö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.

2

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_pass beginnen, die internen Ports gemäß der Angabe.

3

Speichere die Änderungen in der Konfigurationsdatei (Strg + o) und bestätige den Speicherprozess. Schließe die Datei (Strg + x).

4

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:

5

Starte nginx mit folgendem Befehl neu:

Bestätige deine Eingabe mit der Enter-Taste.

6

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.

7

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.

8

Fahre nun mit dem Setup des Applikationsservers fort.

Verwendung eines eigenen öffentlich signierten Zertifikats

Nimm folgende Schritte vor, wenn du ein eigenes öffentlich signiertes Zertifikat verwendest:

1

Navigiere auf dem System, auf dem dein eigenes Zertifikat liegt, mit folgendem Befehl in den Ordner, der alle Zertifikats-Dateien enthält:

Vergiss dabei nicht, <BenutzerdefinierterVerzeichnispfad> und <OrdnerZertifikatsdateien> entsprechend zu ersetzen.

Bestätige deine Eingabe mit der Enter-Taste.

2

Lade die Zertifikats-Dateien mit folgendem Befehl auf den Applikationsserver in ein Zielverzeichnis deiner Wahl hoch:

Vergiss dabei nicht, die folgenden Platzhalter in <> entsprechend zu ersetzen:

  • <OrdnerZertifikatsdateien>

  • <BenutzernameApplikationsserver>

  • <IPAdresseApplikationsserver>

  • <ZielverzeichnisApplikationsserver>

Bestätige deine Eingabe mit der Enter-Taste.

3

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.

4

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.

5

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_pass beginnen, die internen Ports gemäß der Angabe.

6

Speichere die Änderungen in der Konfigurationsdatei (Strg + o) und bestätige den Speicherprozess. Schließe die Datei (Strg + x).

7

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:

8

Starte nginx mit folgendem Befehl neu:

Bestätige deine Eingabe mit der Enter-Taste.

9

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.

10

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.

11

Fahre nun mit dem Setup des Applikationsservers fort.

Verwendung eines selbst signierten Zertifikats oder einer Windows PKI

lightbulb

Weitere Ressourcen

Knowledge Base


Zuletzt aktualisiert

War das hilfreich?