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
- 1 Verwenden eines zusätzlichen Webservers, der das Zertifikat ausliefert
- 1.1 Checkliste Vorbedingungen für alle Varianten
- 1.2 SSL-Zertifikat mit Apache
- 1.3 SSL-Zertifikat mit IIS (Internet Information Services) (empfohlen)
- 1.4 SSL-Zertifikat mit Synology NAS
- 1.4.1 Hintergrund
- 1.4.2 Anleitung
- 1.4.3 Let’s Encrypt Zertifikate auf Synology NAS nutzen
- 1.4.4 Fertig
- 1.5 Eigenes Zertifikat verwenden
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
Download der Application-Request-Routing und Reverse-Proxy Module
Download URL-Rewrite-Modul: https://www.iis.net/downloads/microsoft/url-rewrite
Download Application-Request-Routing-Modul: https://www.iis.net/downloads/microsoft/application-request-routing
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 |
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:
Ö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.