ENGINSIGHT
WebsiteLoginKostenloser Testzugang
Deutsch
Deutsch
  • Überblick
  • Funktionsumfang
  • Bedienung
    • Plattform Übersicht
    • Start Guide
    • Plattform
      • Dashboards
        • Schwachstellenmanagement
        • Operation Centers
        • Meine Dashboards
        • Konfigurationen
      • Issues
      • Hosts (Pulsar-Agent)
        • Pulsar-Agent
        • Hostdetails
        • Policy Manager
        • Softwareinventar
        • Intrusion Detection System
        • File Integrity Monitoring
        • Systemevents
        • Update Manager
        • Plugins
        • Machine Learning
      • Host (Pulsar-Agent) BETA
        • Pulsar-Agent
        • Hostdetails
        • Softwareinventar
        • Policies
        • Plugins
        • Globale Tags
        • Tag Manager
        • Systemevents
        • Schwachstellen Manager
        • Compliance
        • Intrusion Detection System
        • File Integrity Monitoring
        • Advanced Persistent Threats
      • Endpunkte (Observer)
        • Endpunktdetails
        • Domains
        • Zertifikatsmanager
        • Observer
      • Observations
      • Shield
      • Penetrationstests (Hacktor)
        • Pentest durchführen
        • Audits
        • Audit Definitionen
        • Zielsysteme
        • Auth-Providers
        • Hacktor
        • Custom Scripts
      • Discoveries
      • SIEM
        • Data Lake
        • Cockpits
        • Obfuskatoren
        • Workflows
        • Ereignisse
        • Extraktoren
        • Kollektoren
        • Loggernaut
        • Erweiterte Einstellungen
        • KI-Modelle
      • Alarme
      • Einstellungen
      • Organisationen
      • Tags
      • Searchbar
  • On-Premises
    • Anforderungen
    • Installation
      • Automatische Installation
      • Manuelle Installation
      • Load Balancing
      • SIEM
      • Deinstallation
    • Update
    • Konfiguration
      • HTTPS und Zertifikate
      • Lizenzen und Organisationen
      • Mailserver
      • 2-Faktor-Authentifizierung
      • SSO via Office 365
      • Speicherzeiten
      • White Label
      • NGINX Extraktor
      • Field Level Encryption
      • Loggernaut-Konfigurationen
  • Technische Details
    • Systemanforderungen
      • Pulsar: Betriebssysteme
    • Aktuelle Versionsnummern
    • Pentest Vektoren
    • API
  • Partnerbereich
    • Lizenzen und Organisationen
Powered by GitBook
On this page
  • nginx installieren
  • Interne Ports definieren
  • Let's Encrypt einrichten
  • Zertifikate und SSL/TLS in nginx konfigurieren
  • Mit Let's Encrypt
  • Mit eigenem Zertifikat

Was this helpful?

  1. On-Premises
  2. Konfiguration

HTTPS und Zertifikate

PreviousKonfigurationNextLizenzen und Organisationen

Last updated 9 days ago

Was this helpful?

Für den produktiven Einsatz von Enginsight ist eine verschlüsselte Verbindung über HTTPS zwingend notwendig.

Dazu installieren und konfigurieren Sie nginx auf dem Applikationsserver. Bei der automatischen Installation von Enginsight ist nginx bereits installiert.

So erhalten Sie den folgenden Aufbau:

  • Container Ports: 80, 8080

  • interne Ports: 81, 82 (127.0.0.1:81, 127.0.0.1:82)

Sie brauchen zwei Domains, die auf die IP-Adresse des Applikationsservers zeigen:

  • ngs-api.domain.de (Port 80)

  • ngs-app.domain.de (Port 443)

Wenn Sie ein eigenes Zertifikat besitzen, können Sie es nutzen. Alternativ empfehlen wir die Nutzung von Let's Encrypt.

nginx installieren

Dieser Schritt ist nur bei manueller Installation notwendig! Wenn Sie ein automatisiertes Setup verwenden, überspringen Sie diesen Abschnitt.

Haben Sie eine manuelle Installation durchgeführt, installieren Sie zunächst nginx. Bei einer automatischen Installation können Sie diesen Schritt überspringen.

apt install nginx

Interne Ports definieren

Dieser Schritt ist immer erforderlich, unabhängig von der Art der Installation. Die Portdefinition ist essenziell für die interne Kommunikation der Dienste.

Defnieren Sie in der docker-compose.yml für die Benutzeroberfläche (ui-m1) und API (server-m2) einen internen Port.

1. Navigieren Sie in /opt/enginsight/enterprise

cd /opt/enginsight/enterprise

2. Öffnen Sie docker-compose.yml.

nano docker-compose.yml

3. Passen Sie die Ports an.

  ui-m1:
    image: registry.enginsight.com/enginsight/ui-m1:x.x.x
    ports:
    - "127.0.0.1:81:80"
    restart: always
    volumes:
    - "./conf/ui-m1/environment.js.production:/opt/enginsight/ui-m1/config/environment.js"

  server-m2:
    image: registry.enginsight.com/enginsight/server-m2:x.x.x
    networks:
    - redis
    - mongodb
    ports:
    - "127.0.0.1:82:8080"

4. Speichern Sie die Datei (Strg+o) und bestätigen Sie den Speicherprozess. Schließen Sie nano (Strg+x).

5. Führen Sie setup.sh aus, damit die Änderungen wirksam werden.

./setup.sh

Let's Encrypt einrichten

Wollen Sie ein eigenes Zertifikat nutzen, überspringen Sie die folgenden Schritte.

  1. Passen Sie die Konfiguration von nginx an. Öffnen Sie die Konfigurationsdatei.

Automatische Installation

nano /etc/nginx/sites-available/ngs.conf

Manuelle Installation

nano /etc/nginx/sites-available/default
  1. Nutzen Sie die folgende Vorlage und setzen Sie Ihre Domain ein.

server {
        listen 80;
        listen [::]:80;
 
        location ~ /.well-known {
                allow all;
        }
 
        location / {
                return 302 https://ngs-api.domain;
        }
 
        root /var/www/ngs-api.domain;
 
        server_name ngs-api.domain;
}
 
server {
        listen 80;
        listen [::]:80;
 
        location ~ /.well-known {
                allow all;
        }
 
        location / {
                return 302 https://ngs-app.domain;
        }
 
        root /var/www/ngs-app.domain;
 
        server_name ngs-app.domain;
}
  1. Rufen Sie den Status von nginx ab und prüfen Sie, ob die Änderung erfolgreich war.

nginx -t
  1. Starten Sie nginx neu.

service nginx restart
  1. Installieren Sie Certbot.

sudo apt-get install certbot
  1. Legen Sie für jede Domain einen Ordner an.

mkdir -p /var/www/ngs-api.domain.de
mkdir -p /var/www/ngs-app.domain.de
  1. Erstellen Sie das Zertifikat.

certbot certonly --rsa-key-size 4096 --webroot -w /var/www/ngs-api.domain.de -d ngs-api.domain.de
certbot certonly --rsa-key-size 4096 --webroot -w /var/www/ngs-app.domain.de -d ngs-app.domain.de
  1. Generieren Sie die Diffie-Hellman Parameter.

openssl dhparam -out dhparam.pem 2048

Zertifikate und SSL/TLS in nginx konfigurieren

Mit Let's Encrypt

Passen Sie die Konfiguration von nginx an.

1. Öffnen Sie die Konfigurationsdatei.

Automatische Installation

nano /etc/nginx/sites-available/ngs.conf

Manuelle Installation

nano /etc/nginx/sites-available/default

2. Nutzen Sie die folgende Vorlage und setzen Sie Ihre Domain ein.

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
        listen 80;
        listen [::]:80;
 
        location ~ /.well-known {
                allow all;
        }
 
        location / {
                return 302 https://ngs-api.domain;
        }
 
        root /var/www/ngs-api.domain;
 
        server_name ngs-api.domain;
}
 
server {
        listen 80;
        listen [::]:80;
 
        location ~ /.well-known {
                allow all;
        }
 
        location / {
                return 302 https://ngs-app.domain;
        }
 
        root /var/www/ngs-app.domain;
 
        server_name ngs-app.domain;
}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name ngs-app.domain.de;

    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
   ssl_ciphers "ECDHE+AESGCM+AES256";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    ssl_dhparam /etc/nginx/dhparam.pem;
    ssl_certificate /etc/letsencrypt/live/ngs-app.domain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ngs-app.domain.de/privkey.pem;

    client_max_body_size 200m;

    location / {
        proxy_pass http://127.0.0.1:81;
        proxy_set_header Host              $host;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-Proto "https";
        proxy_set_header X-Forwarded-Ssl   "on";
        proxy_set_header Upgrade           $http_upgrade;
        proxy_set_header Connection        $connection_upgrade;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name ngs-api.domain.de;

    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "ECDHE+AESGCM+AES256";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    ssl_dhparam /etc/nginx/dhparam.pem;
    ssl_certificate /etc/letsencrypt/live/ngs-api.domain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ngs-api.domain.de/privkey.pem;

    client_max_body_size 200m;

    location / {
        proxy_pass http://127.0.0.1:82;
        proxy_set_header Host              $host;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-Proto "https";
        proxy_set_header X-Forwarded-Ssl   "on";
        proxy_set_header Upgrade           $http_upgrade;
        proxy_set_header Connection        $connection_upgrade;
    }
}

3. Rufen Sie den Status von nginx ab und prüfen Sie, ob die Änderung erfolgreich war.

nginx -t

4. Starten Sie nginx neu.

service nginx restart

Mit eigenem Zertifikat

Achten Sie beim Zertifikat bitte darauf, dass es im PEM Format vorliegt. Wenn nicht, konvertieren Sie das Zertifikat zunächst in das PEM Format.

Passen Sie die Konfiguration von nginx an.

1. Öffnen Sie die Konfigurationsdatei.

Automatische Installation

nano /etc/nginx/sites-available/ngs.conf

Manuelle Installation

nano /etc/nginx/sites-available/default

2. Nutzen Sie die folgende Vorlage und setzen Sie Ihre Domain und die Pfade zu den Zertifikaten ein.

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name ngs-app.domain.de;

    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "ECDHE+AESGCM+AES256";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

#   ssl_dhparam /etc/nginx/dhparam.pem;
    ssl_certificate /<Pfad>/fullchain.pem;
    ssl_certificate_key /<Pfad>/privkey.pem;

    client_max_body_size 200m;

    location / {
        proxy_pass http://127.0.0.1:81;
        proxy_set_header Host              $host;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-Proto "https";
        proxy_set_header X-Forwarded-Ssl   "on";
        proxy_set_header Upgrade           $http_upgrade;
        proxy_set_header Connection        $connection_upgrade;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name ngs-api.domain.de;

    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "ECDHE+AESGCM+AES256";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

#   ssl_dhparam /etc/nginx/dhparam.pem;
    ssl_certificate /<Pfad>/fullchain.pem;
    ssl_certificate_key /<Pfad>/privkey.pem;

    client_max_body_size 200m;

    location / {
        proxy_pass http://127.0.0.1:82;
        proxy_set_header Host              $host;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-Proto "https";
        proxy_set_header X-Forwarded-Ssl   "on";
        proxy_set_header Upgrade           $http_upgrade;
        proxy_set_header Connection        $connection_upgrade;
    }
}

3. Rufen Sie den Status von nginx ab und prüfen Sie, ob die Änderung erfolgreich war.

nginx -t

4. Starten Sie nginx neu.

service nginx restart

Beachten Sie bitte, dass LetsEncrypt nur 3 Monate gültig ist. Folgen Sie der , um Ihr SSL-Zertifikat zu aktualisieren.

Anleitung