Eigenes Zertifikat für FE2 verwenden

Für die Einrichtung eines Reverse-Proxy können wir keinen Support leisten. Diese Anleitung wurde nach bestem Wissen erstellt, kann jedoch nach Updates der Plattformen variieren!

 

Standardmäßig wird bei aktiviertem HTTPS-Zugriff auf FE2 ein von FE2 generiertes Zertifikat verwendet. Dadurch erscheint die Adressleiste im Browser aber in rot, was bei einem externen Zugriff nicht ideal ist.

Der externe Zugriff auf FE2 aus dem Internet ist nicht zwingend notwendig! Vieles kann innerhalb des lokalen Netzwerks oder z. B. per VPN-Vebindung umgesetzt werden.

Ein externer Zugriff ist nur notwendig, wenn Sie keine VPN-Verbindung nutzen können und:

  • Sie die App “Mobiler Alarm” von außerhalb des FE2 Netzwerks verwenden möchten

  • Sie die App “aMobile PRO” von außerhalb des FE2 Netzwerks synchronisieren möchten

  • Sie ein FE2-System für mehrere Organisationen betreiben und die Organisationen Ihre Daten selbst pflegen sollen

  • Sie Eingangsschnittstellen verwenden möchten, die auf HTTP- bzw. TCP/IP Basis Daten an FE2 übermitteln sollen


Verwenden eines zusätzlichen Webservers, der das Zertifikat ausliefert

Laden Sie sich einen Webserver (z. B. Apache) herunter oder verwenden Sie bei Windows-Server Betriebssystemen alternativ IIS. Dieser wird dem FE2-Server mittels Reverse Proxy vorgeschaltet und übernimmt die SSL-Verschlüsselung. FE2 braucht dabei keine aktivierte SSL-Verbindung. Hier eine kurze Darstellung, wie der Aufbau aussieht:

Checkliste Vorbedingungen für alle Varianten

Nachfolgend finden Sie eine Checkliste für alle Vorbedingungen, die für eine Einrichtung anhand der nachfolgenden Einrichtung erforderlich sind. Diese Checkliste kann als Hilfe für eine eigenständige Einrichtung verwendet werden, aber auch für eine beauftragte Einrichtung durch uns. Sprechen Sie uns im Falle einer geführten Einrichtung gerne auf unklare Punkte an. Nur bei vollständiger Vorlage alle Informationen kann eine Einrichtung durchgeführt werden.

SSL-Zertifikat mit Apache

Folgende Einstellungen müssen dann in der Apache Config vorgenommen werden:

In der httpd.conf müssen folgende Module geladen werden, sofern diese noch nicht einkommentiert wurden:

httpd.conf

LoadModule headers_module modules/mod_headers.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule ssl_module modules/mod_ssl.so [...] # Dieser Teil sollte bereits existieren, hier muss sichergestellt sein, dass die hier genannte Datei inkludiert wird <IfModule ssl_module> Include conf/extra/httpd-ssl.conf </IfModule>

Anschließend kann in der httpd-ssl.conf der folgende Teil eingefügt werden (bestehenden Inhalt komplett ersetzen)

httpd-ssl.conf

Listen 443 # SSL Cipher Suite SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM !EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !LOW !RC4 !MD5 !EXP !PSK !SRP !DSS" SSLProxyCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM !EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !LOW !RC4 !MD5 !EXP !PSK !SRP !DSS"     # Prevent CRIME/BREACH compression attacks SSLCompression Off SSLHonorCipherOrder on  # SSL Protocol support #SSLProtocol all -SSLv3 -TLSv1 #SSLProxyProtocol all -SSLv3 -TLSv1 SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 # Pass Phrase Dialog SSLPassPhraseDialog  builtin # Inter-Process Session Cache: SSLSessionCache "shmcb:logs/ssl_scache(512000)" SSLSessionCacheTimeout  300 ## ## SSL Virtual Host Context ## SSLStrictSNIVHostCheck off <VirtualHost *:443>       #General setup for the virtual host    ServerName my.domain.de    ErrorLog "logs/my.domain.de-error.log"    CustomLog "logs/my.domain.de-access.log" common       Header always add Strict-Transport-Security "max-age=31536000; preload"    #SSL Engine Switch:    SSLEngine on          #Server Certificate:    SSLCertificateFile "C:/letsencrypt-win-simple/generated_certs/my.domain.de-crt.pem"    #Server Private Key:    SSLCertificateKeyFile "C:/letsencrypt-win-simple/generated_certs/my.domain.de-key.pem"    #Server Certificate Chain:    SSLCertificateChainFile "C:/letsencrypt-win-simple/generated_certs/ca-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-crt.pem"    ProxyRequests Off    ProxyPreserveHost On    SSLProxyEngine on    SSLProxyCheckPeerName off    SSLProxyCheckPeerCN off    SSLProxyCheckPeerExpire off    SSLsecureRenegotiation on    SSLProxyVerify none    SSLVerifyClient none          <Proxy *>       Require all granted     </Proxy>        AllowEncodedSlashes On    ProxyPass        / http://my-fe2-server:83/ nocanon    ProxyPassReverse   / http://my-fe2-server:83/ nocanon    BrowserMatch "MSIE [2-6]" \          nokeepalive ssl-unclean-shutdown \          downgrade-1.0 force-response-1.0             # MSIE 7 and newer should be able to use keepalive     BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown #Rewrite for websockets (Live-Verbindung) RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://my-fe2-server:83%{REQUEST_URI} [P] </VirtualHost>

 Für nginx sind folgende Einstellungen in "location" Konfiguration notwendig:

location / { proxy_pass http://my-fe2-server:83; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }

SSL-Zertifikat mit IIS (Internet Information Services) (empfohlen)

Mit dem mitgelieferten Webserver IIS bei Windows-Server Betriebssystemen lässt sich eine sichere Seite nach außen aufbauen ohne bei FE2 SSL aktiviert zu haben. Folgende Schritte sind vor der Konfiguration durchzuführen:

Windows 10/11

Drücken Sie “Windows-Taste + R” und geben “OptionalFeatures” ein. Drücken Sie dann auf “Enter” oder klicken Sie auf “OK”.

Im sich öffnenden Fenster klicken Sie auf den Eintrag “Internet Informations Dienste (IIS)” und wählen dann im untergeordneten Menü “Websockets Protokoll” aus (siehe untenstehende Grafik):

Klicken Sie anschließend auf “OK” um die Features zu installieren. Ggf. wird ein Rechnerneustart benötigt. Führen Sie diesen aus, wenn Sie dazu aufgefordert werden.

Windows Server 2016 und neuer

Aktivieren der IIS-Serverrolle, wenn noch nicht geschehen
Auf einem Windows Server erreicht man dies schnell über den ServerManager

Installation der erforderlichen Module

  1. Download der Application-Request-Routing und Reverse-Proxy Module

    1. Download URL-Rewrite-Modul: https://www.iis.net/downloads/microsoft/url-rewrite

    2. Download Application-Request-Routing-Modul: https://www.iis.net/downloads/microsoft/application-request-routing

  2. Installation der beiden heruntergeladenen Module

Einrichtung SSL-Zertifikat mit Let's Encrypt

Folgen Sie dieser Anleitung, um ein Zertifikat zu erstellen, welches sich automatisch erneuert. Zunächst bearbeiten wir die Default Web Site im IIS-Manager. Klicken Sie dazu im rechten Menüband auf “Bindungen”:

Anschließend öffnet sich das unten gezeigte Fenster.


Unter Hostname, muss der DNS Eintrag eingetragen werden, unter dem das System über das Internet erreicht werden kann. Natürlich muss hier zuvor eine entsprechende Eintragung beim jeweiligen DNS Registrar erfolgen (A-Record), DynDNS Einträge sind auch möglich.

Vergessen Sie nicht den IIS-Server nach Änderungen neuzustarten. Dies geht ebenfalls über den IIS-Manager.

Das heruntergeladene Tool wird entpackt und anschließend ausgeführt (wacs.exe) Das Tool benötigt mindestens das .net Framework 4.7.2 (Zum Zeitpunkt dieses Artikels) und muss ggf. noch installiert werden, sonst startet die wacs.exe nicht.

Die wacs.exe muss in einem Konsolenfenster gestartet werden (cmd.exe) als Administrator. Ein einfacher Doppelklick genügt nicht.

Innerhalb des Tools wählen wir nacheinander die folgenden Optionen

  • N (Create new .... simple for IIS)

  • 1 (Single Binding of an IIS Website)

    • Hier wird nun die zuvor eingerichtete Site (Hostname) angezeigt. Das Tool erkennt selbständig mögliche Websites und schlägt diese vor

  • Wählen Sie die gewünschte Website, je nach anderen eingerichteten Websites

  • Geben Sie im nächsten Schritt unbedingt eine gültige E-Mail Adresse ein

    • Hintergrund: Letsencrypt benachrichtigt Sie ggf. über auslaufende Zertifikate, was generell nicht nötig sein sollte, jedoch bei Verlängerungsproblemen äußerst hilfreich ist

  • Die rechtlichen Fragen akzeptieren

  • Nun sollte das Tool erfolgreich durchlaufen und eine Verlängerung des Zertifikats geplant haben

    • Ausgabe: Next renewal scheduled at....

  • Schließen mit Q

Weitere Konfiguration des IIS

Öffnen Sie den IIS-Manager und klicken Sie auf die Default Web Site:


Öffnen Sie anschließend über das rechte Fenster das Modul "URL-Rewrite" mit einem Doppelklick:

Fügen Sie über das rechte Aktionen-Menü eine neue Regel hinzu und wählen Sie anschließend "Reverse Proxy":

 

Beim ersten Öffnen wird gefragt, ob der IIS Manager das zuvor installierte ARR-Modul aktivieren soll. Bestätigen Sie dies mit "Ja" und beenden Sie den Dialog wieder. 

Bevor sie die unten stehende Config nun kopieren, führen Sie noch folgenden Schritt durch:

Klicken Sie im rechten Menü auf "Servervariablen anzeigen" und dann auf "Hinzufügen":

 


Geben Sie im darauffolgenden Fenster den Wert 

ein und bestätigen Sie das Fenster mit "OK".

Klicken Sie anschließend wieder im rechten Menü auf "Zu Regeln zurückkehren"

web.config

 

Ersetzen Sie in dieser Datei beide Vorkommnisse von meinsystem.feuerwehr.de mit dem von Ihnen eingesetzten Hostnamen.

Kopieren Sie diese Datei anschließend mit dem Dateinamen web.config in das Wurzelverzeichnis der Default Website. Den Order können Sie sehr einfach folgendermaßen öffnen:

Die Dateistruktur des Wurzelverzeichnisses sollte anschließend so aussehen, der wwwroot Pfad kann natürlich an einem anderen Ort liegen

Standardkonfiguration für SSL/TLS des IIS absichern

Standardmäßig ist die HTTPS-Verschlüsselung des IIS so eingerichtet, dass möglichst viele unterschiedliche Client sich verbinden können, ohne Verschlüsselungsfehler zu erhalten. Dies ist aber hauptsächlich auf ältere Geräte zurückzuführen, die moderne Protokolle und Verschlüsselungsalgorithmen nicht unterstützen. Da die alten Verschlüsselungsalgorithmen aber nicht mehr sicher sind, sollten diese abgeschaltet werden.

Hierfür gibt es ein kostenloses Tool namen “IISCrypto”, welches Sie auf folgender Seite herunterladen können: Nartac Software - IIS Crypto

Laden Sie hier das Tool “IISCrypto GUI” herunter und starten Sie dieses. Klicken Sie anschließend unten links auf “Best Practices”. Anschließend sollten die Einstellungen wie folgt aussehen:

Klicken Sie anschließend auf “Apply” und starten Sie den Computer anschließend neu, damit die Änderungen übernommen werden. Ein Neustart des IIS-Servers reicht an dieser Stelle nicht aus.

Striktere Absicherung

Wollen Sie die Verschlüsselung noch sicherer machen, können Sie folgende Schritte zusätzlich ausführen:

Deaktivieren von TLS 1.0 und TLS 1.1

Es hat sich bewährt die Protokolle “TLS 1.0” sowie “TLS 1.1” bei “Server Protocols” und “Client Protocols” zu deaktivieren. Dadurch wird ausschließlich der aktuelle Standard TLS 1.2 für die Verschlüsselung verwendet. Klicken Sie anschließend auf “Apply” und starten den Rechner neu.

Deaktivieren von 128bit Verschlüsselung

128bit-Verschlüsselung ist aktuell noch in Verwendung, da aber mittlerweile so gt wie alle Geräte eine 256bit-Verschlüsselung unterstützen, kann die 128bit-Verschlüsselung deaktiviert werden.

Klicken Sie hierzu auf den Eintrag “AES 128/128” im Kasten “Ciphers” und deaktivieren Sie diesen. Wechseln Sie nun im linken Menü au “Cipher Suites” und deaktivieren Sie alle Einträge mit Ausnahme der nachfolgend angezeigten:

Die markierten Einträge müssen aktiv bleiben.

Klicken Sie anschließend auf “Apply” und starten den Rechner neu.

SSL-Zertifikat mit Synology NAS

Hintergrund

Wir haben ein Synology NAS bei uns im Einsatz, hierfür werden die Ports 80 und 443 bereits auf dieses NAS weitergeleitet. Hier sind diverse Let’s Encrypt Zertifikate im Einsatz.

Problem

Ein lokal installierter Reverse-Proxy auf dem FE2 Rechner (Option 1 und 2 dieser Handbuchseite) erfordern, dass Port 80 und 443 dauerhaft auf den FE2 Rechner weitergeleitet werden müssen, damit das Let’s Encrypt Zertifikat automatisch verlängert werden kann. Da diese Ports bereits auf das Synology NAS weitergeleitet werden, kann dies nicht funktionieren.

Lösung

Reverse-Proxy Funktion des Synology NAS verwenden. Es muss nichts zusätzlich auf dem FE2 Rechner konfiguriert oder installiert werden. Der Ablauf läuft dann wie hier dargestellt, nur das der Apache Web Server durch das Synology NAS ersetzt wird:

Vorbedingungen

Siehe Checkliste Vorbedingungen für alle Varianten

Alles genauso wie in der Datei „HTTPS Zugriff Anfoderungen.xlsx“ beschrieben außer:

Port Forwarding

Eingerichtetes Port Forwarding von extern zum FE2 Server
 
Port 443 extern zu Port 443 an Synology NAS
Port 80 extern zu Port 80 an Synology NAS

Zusammenfassung der Vorbedingungen

  • FE2 Server ist im lokalen Netzwerk über Port 83 (http) erreichbar

  • DynDNS Adresse ist vorhanden und in der FE2 Konfiguration unter „Webzugriff“ eingetragen

  • Port 80 und 443 ist weitergeleitet auf Synology NAS

Anleitung

  • Login auf Synology NAS

  • Im Paket-Zentrum werden folgende Pakete benötigt um die Weiterleitung von http zu https zu realisieren: „Web Station“ und „Apache http Server“ (egal welche Version)

  • Nach der Installation der Pakete gibt es einen neuen Ordner „web“ indem wir einen Unterordner „RedirectHTTPS“ erstellen:



  • Im nächsten Schritt folgende Datei herunterladen und in das im vorherigen Schritt erstelle Verzeichnis auf dem NAS kopieren:

  Datei Geändert

Textdatei .htaccess

11.08.2020 by Simon Wheeler
  • Öffnet auf dem NAS das Paket „Web Station“ und erstellt einen neuen Virtuellen Host mit folgenden Einstellungen (Der Port 2020 ist frei wählbar falls ihr ihn schon in Verwendung habt)

  • Schließt die Web Station wieder und wechselt auf dem NAS zu „Systemsteuerung“ und navigiert dann zum „Anwendungsportal”. Unter dem Reiter „Reverse Proxy“ klicken wir auf „Erstellen“.

  • Hier müssen wir 2 Regeln erstellen:

    • Die erste Regel basiert auf http und Port 80 und leitet den ankommenden Traffic zu unserer Web-Station welche dann den redirect auf https durchführt:

       

    • Die zweite Regel basiert auf https und Port 443 und leitet den Traffic weiter zu unserem FE2 Server auf http und Port 83

       

Live-Verbindung FE2

Damit die Live-Verbindung zu FE2 funktioniert (erkennbar am grünen Punkt neben dem User in der Weboberfläche) muss noch folgendes aktiviert werden:

In der zweiten Proxy-Regel (die HTTPS Weiterleitung auf FE2 Port 83) muss ein Benutzerdefinierter Header erstellt werden, hierfür auf den kleinen Pfeil neben „Erstellen“ klicken und „Websocken“ auswählen:

Die Headernamen und Werte werden automatisch ausgefüllt, man muss nur noch auf OK klicken:

Let’s Encrypt Zertifikate auf Synology NAS nutzen

Um Let’s Encrypt erstmalig auf dem NAS zu nutzen empfehle ich folgende Anleitung:;

https://idomix.de/synology-diskstation-lets-encrypt-ssl-zertifikat-installieren

Wenn ihr bereits Let’s Encrypt Zertifikate verwendet, so könnt ihr unter „Systemsteuerung“ → „Sicherheit“ und dem Reiter „Zertifikat“ einfach für eure FE2 DynDNS Adresse ein neues Zertifikat erstellen:

Zum Abschluss müsst ihr das neu erstellte Zertifikat eurer DynDNS Adresse zuordnen. Dies wird über den Button „Konfigurieren“ möglich:

 

Eigenes Zertifikat verwenden

Wenn Sie ein eigenes Zertifikat haben, so benötigen Sie hierfür sowohl den öffentlichen Teil als auch den privaten Teil des Schlüssels.

Dieses Zertifikat muss anschließend in eine JSK (Java Keystore) Datei konvertiert werden, welche sich am besten mit dem KeyStore Explorer bearbeiten lässt.

Um einen neuen KeyStore zu erstellen, wählen Sie den Typ des Schlüsselsspeichers JKS aus.

Anschließend können Sie via Drag&Drop das Zertifikatspaar kopieren. Der Name des Eintrages muss hierbei fe2 lauten.

 

Schützen Sie den Eintrag selbst mit demselben Passwort, wie das Passwort des eigentlichen KeyStores.

 

Dieses Passwort müssen Sie anschließend in FE2 in den Webserver-Einstellungen hinterlegen.