FHEM Tutorial-Reihe - Part 21: Zugriff auf FHEM über das Internet (ReverseProxy)

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

FHEM Tutorial-Reihe - Part 21: Zugriff auf FHEM über das Internet (ReverseProxy)
FHEM Tutorial-Reihe - Part 21: Zugriff auf FHEM über das Internet (ReverseProxy)
  • Matthias Kleine
  • 30.12.2016
  • Remote-Zugriff

Oft wurde es sich gewünscht - heute gehen wir das Thema an: Zugriff auf FHEM von überall auf der Welt! Wir gehen dabei aber nicht den 0815-Weg (Port-Forwarding auf 8083 + selbstsigniertes Zertifikat und Fehlermeldungen), sondern punkten mit einem gültigen Zertifikat, welches sich reglmäßig erneuert, einer sicheren Kommunikation über einen ReverseProxy und der Grundlage für ein einweiterbares System für den Zugriff auf weitere Dateien auf dem Raspberry Pi.

Achtung: Dieser Inhalt wurde vor mehreren Jahren aufgenommen und ist nicht mehr aktuell! Es ist nicht empfohlen nach dieser Anleitung vorzugehen.
Wichtig: Bitte genau überlegen, ob dies notwendig ist! Ein Zugriff per VPN ist immer zu bevorzugen!

Was wird benötigt?

  • Eine echte Domain. DynDNS-Dienstleister arbeiten nicht mit LetsEncrypt zusammen
  • Eine IPv4-Adresse. DSLite oder IPv6 wird in diesem Tutorial nicht unterstützt
  • Eine FritzBox (optional, klappt auch mit anderen Routern)
  • Eine laufende FHEM-Installation (auf Debian)
  • Ein installierter Apache Webserver
  • Linux-Kenntnisse
  • Etwas Geduld

ALL-INKL.COM - Webhosting Server Hosting Domain Provider

Was wir tun:

  • Subdomain als DDNS anlegen (z.B. bei all-inkl.de)
  • FritzBox so konfigurieren, dass die richtige IP regelmäßig hinterlegt wird
  • Port-Forwarding auf Port 443 zum Raspberry Pi
  • Generierung des SSL-Zertifikates
  • Konfiguration des Apache Virtual Host

Alle Infos im Video:

Hausbau-Kurs

Folgende Befehle brauchst Du:

cd /opt
sudo git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help
./letsencrypt-auto certonly --rsa-key-size 4096 -d <domain>

Dann den Schritten im Setup (wie im Video gezeigt) folgen.

sudo a2enmod proxy proxy_http
sudo service apache2 restart
cd /etc/apache2/sites-available/
sudo vi <domain>.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName fhem.haus-automatisierung.com

    ServerAdmin info@haus-automatisierung.com
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/fhem.haus-automatisierung.com.error.log
    CustomLog ${APACHE_LOG_DIR}/fhem.haus-automatisierung.com.access.log combined

    SSLCertificateFile /etc/letsencrypt/live/fhem.haus-automatisierung.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/fhem.haus-automatisierung.com/privkey.pem

    Include /etc/letsencrypt/options-ssl-apache.conf

    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On

    <Location /fhem>
        ProxyPass http://localhost:8083/fhem
        ProxyPassReverse http://localhost:8083/fhem
    </Location>

    <Directory />
        RedirectPermanent / /fhem
    </Directory>

    <Proxy *>
        AuthType Basic
        AuthName "Password for FHEM Required"
        AuthUserFile /etc/fhem-htpasswd
        Require valid-user
        Order deny,allow
        Allow from all
    </Proxy>
</VirtualHost>
</IfModule>
sudo apt-get install libapache2-mod-proxy-html
cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/<domain>.conf .
sudo htpasswd -c -s /etc/fhem-htpasswd <username>
sudo a2enmod ssl proxy_html
sudo apachectl configtest
sudo service apache2 restart

Cronjob zur Zertifikatserneuerung:

crontab -e

Kleine Änderung gegenüber dem Video - der angegebene Befehl war falsch. Ich führe jetzt einfach täglich um 23 Uhr ein renew durch. Dieses erkennt automatisch, welche Zertifikate bald ablaufen und erneuert diese gegebenenfalls.

0 23 * * * sudo service apache2 stop && /opt/letsencrypt/letsencrypt-auto renew && sudo service apache2 start
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos