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

Mit ** gekennzeichne Links auf dieser Seite sind Affiliatelinks.

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.

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:

FHEM-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

Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Rabattaktionen für Kurse
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbaren Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich ungern auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.