SSL Verbindung: FHEM mit Passwort und HTTPS absichern

Den Webzugriff auf eurer FHEM-Installation kann man relativ schnell über ein Attribut mit einem Passwort schützen. In diesem Artikel erkläre ich euch, wie ihr eine Passwortabfrage erstellt und das Passwort über eine sichere Verbindung (HTTPS) mit einem SSL Zertifikat überträgt.

Bevor wir das Passwort einrichten, müssen wir das gewünschte Passwort zunächst Base64 codieren. Unter Linux reicht dazu der Befehl:

echo -n benutzername:passwort | base64

Eine weitere Möglichkeit bieten sogenannte Online Base64 Encoder (www.base64online.com)

Man erhält nach der Codierung eine Folge von Buchstaben, Zahlen und Zeichen. Zum Beispiel:

SGF1czpHYXJ0ZW4=

Diese Folge ist nun euer codierter Benutzername und Passwort. Für die Einbindung in FHEM dient das Modul „allowed“.

define allowedWEB allowed

Diesem Modul lässt sich nun das kodierte Passwort als Attribut hinzufügen:

attr allowedWEB basicAuth SGF1czpHYXJ0ZW4=

Anschließend wird angegeben, für welche WEB-Instanz das Passwort gesetzt werden soll:

attr allowedWEB validFor WEB,WEBphone,WEBtablet

Zum Schluss noch die Änderungen abspeichern und FHEM neu starten:

save
shutdown restart

Möchte man nun auf FHEM zugreifen, wird zuerst der Benutzername und das Passwort abgefragt.

FHEM SSL passwort

Bei einer Übertragung von Passwörtern, sollte man natürlich darauf achten, dass diese verschlüsselt übertragen werden. Dazu richten wir eine HTTPS-Verbindung mit einem SSL-Zertifikat ein. Zunächst müssen wir auf dem Raspberry noch einige Pakete installieren. Über SSH eine Verbindung zum Raspeberry herstellen und mit folgenden Befehle die Pakete installieren:

sudo apt-get update
sudo apt-get install libio-socket-ssl-perl
sudo apt-get install libwww-perl

Anschließend erstellen wir noch einen Ordner im FHEM-Installationsordner, wo wir später das SSL-Zertifikat abspeichern.

cd /opt/fhem
sudo mkdir certs

Nun können wir das SSL Zertifikat erstellen:

cd /opt/fhem/certs
sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem

Das SSL-Modul muss die erzeugten Dateien server-key-pem und server-cert.pem verwenden dürfen, wir setzen also noch die benötigten Rechte:

sudo chmod 644 /opt/fhem/certs/*.pem
sudo chmod 711 /opt/fhem/certs

Damit die FHEM-Installation die nun eingerichtet sicher Verbindung nutzt, müssen wir noch ein Attribut setzen:

attr WEB HTTPS

Nach dem speichern der Konfiguration und einem Neustart von FHEM erfolgt der Zugriff nun per HTTPS.

save
shutdown restart

Nicht wundern, wenn euer Internet-Browser Sicherheitsbedenken bezüglich des Zertifikats hat. Aufgrund der Tatsache, dass wir keine „vertrauenswürdige zertifizierungsstelle“ sind, gilt unser selbst erstellte Zertifikat als unsicher. Aber keine Panik, euer Passwort wird trotzdem sicher übertragen.

SSL Zertifikat

Diese Absicherung mit SSL und HTTPS ist vor allem sehr wichtig, wenn man den Raspberry aus dem Internet erreichbar macht.

Hinterlasse einen Kommentar

8 Kommentare auf "SSL Verbindung: FHEM mit Passwort und HTTPS absichern"

Benachrichtige mich zu:
avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
Sortiert nach:   neuste | älteste | beste Bewertung
Larimow
Gast
Larimow

Hallo Daniel,
ich habe probiert, die Umstellung gemäß deiner Anleitung umzusetzen, wurde dadurch aber promt von meinem Pi ausgesperrt.
Nachdem ich
attr WEB basicAuth … (mit meinem Base64-String, im schlimmsten Fall mit Fehlern)
eingegeben hatte, wurde ich direkt aus der Oberfläche katapultiert und neue Benutzerdaten wurde abgefragt. Leider funktionieren meine Login-Daten jetzt nicht mehr. Über die bash komme ich weiterhin auf den Pi und die fhem.cfg wurde anscheinend nicht verändert, mein altes Passwort wird weiterhin klar angezeigt.
Ich habe dann probiert, über die bash die config zu verändern, leider ohne Erfolg, ich komme nicht mehr in das Frontend.
Was mache ich falsch?

MfG Larimow

Steffmaster
Gast
Steffmaster

Bei mir genau das gleiche unter Debian 8. Komme nicht mehr aufs Frontend. Fhem.confg gegen ein Backup ersetzt und trotzdem will er Benutzer und Passwort haben? Iegentwas läuft hier falsch.

Dominik
Gast
Dominik

Hallo Zusammen,

mir ist es ähnlich ergangen, bis ich bemerkte, dass mein PI auf englischer Tastatur lief und dadurch natürlich die Sonderzeichen komplett andere waren.

Vielleicht hilft Euch ja dieser Tipp weiter.

LG

Dennis
Gast
Dennis

Hallo Daniel,

danke für diese schöne Anleitung!
Ich möchte noch eine Kleiningkeit hinzufügen:

attr WEBphone HTTPS
und
attr WEBtablet HTTPS
sollten auch direkt gesetzt werden, damit alle Verbindungen sicher sind.

Sir_BUB
Gast
Sir_BUB

Hallo,
im logfile erscheint bei mir fogende Meldung:
FHEMWEB SSL/HTTPS error: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt SSL accept attempt failed

Ist dies bedingt durch das selbst erstelle Zertifikat?

VG

wpDiscuz