enaio® gateway - Sicherung durch Reverse Proxy

enaio® 10.10 »

enaio® gateway kann mit der Ende-zu-Ende-SSL-Verschlüsselung für alle Komponenten gesichert werden, sollte aber in Produktivsystemen immer auch durch Firewalls bzw. Reverse Proxies gesichert sein. Als Beispiel ist hier die Installation und Konfiguration von NGINX dokumentiert.

NGINX als Reverse Proxy

NGINX kann auf dem gleichen Server installiert werden, auf dem enaio® gateway läuft.

  • Download von NGINX und Entpacken des Archivs in ein Verzeichnis auf dem Installationsrechner.

  • Anpassen der Konfigurationsdatei nginx.conf aus dem Verzeichnis \conf:

    • Ersetzen Sie den Abschnitt server durch folgende Passage:
    • Kopieren
      upstream gateway { 
          server gateway:${port}; 


      server {
        listen 80;
        server_name   _;
        return 301 https://$host$request_uri;
      }

      server { 
          listen 443 ssl; 
          server_name ${gateway-url};
          
          add_header Strict-Transport-Security    "max-age=31536000; includeSubDomains" always;
          add_header X-Frame-Options              SAMEORIGIN;
          add_header X-Content-Type-Options       nosniff;
          add_header X-XSS-Protection             "1; mode=block";
          
          ssl_protocols               TLSv1.2 TLSv1.3;
          ssl_ecdh_curve              secp384r1;
          ssl_ciphers                 "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384 OLD_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 OLD_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256";
          ssl_prefer_server_ciphers   on;
          ssl_dhparam                 /etc/nginx/dhparams.pem;
          ssl_certificate             C:\nginx\config\certificate.pem;
          ssl_certificate_key         C:\nginx\config\private-key.pem;
          ssl_session_timeout         10m;
          ssl_session_cache           shared:SSL:10m;
          ssl_session_tickets         off;
          ssl_stapling                on;
          ssl_stapling_verify         on;
              
          location / { 
              proxy_pass http://localhost:81;
          } 
      }

    • Ersetzen Sie den Platzhalter ${port} durch den Port, über den NGINX aufgerufen wird.
    • Ersetzen Sie den Platzhalter ${gateway-url} durch den Hostnamen, über den Clients sich verbinden.
    • Ersetzen Sie die Adresse im Abschnitt 'location' durch die Adresse, über die NGINX enaio® gateway erreicht.
    • Passen sie gegebenenfalls die Pfade zu den Verzeichnissen für Zertifikatsdatei und Schlüsseldatei an.
    • Kopieren Sie Zertifikatsdatei und Schlüsseldatei in die Verzeichnisse.
    • Speichern Sie die Datei.
  • Starten Sie NGINX über die administrative Eingabeaufforderung: start nginx
  • Prüfen Sie über den Taskmanager oder die Eingabeaufforderung, ob NGINX läuft: tasklist -fi "imagename eq nginx.exe"
  • Passen Sie gegebenenfalls den Port von enaio® gateway entsprechend der Konfiguration an.
  • Der Port kann über enaio blue gatewayw.exe aus dem Verzeichnis \services\OS_Gateway\bin geändert werden.

Mehrere enaio® gateway-Installationen

Falls Sie auf einem Rechner weitere enaio® gateway-Installationen für unterschiedliche Authentifizierungen verwenden, dann muss der Abschnitt 'location' erweitert werden. Beispiel:

location /gateway_1 { 
  proxy_pass http://localhost:8081;

location /gateway_2 { 
  proxy_pass http://localhost:8082;

Aufrufe über https://<host>:443/gateway_1 werden dann an https://<host>:8081 weitergeleitet, Aufrufe von https://<host>:443/gateway_2 an https://<host>:8082.