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:

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:

Diese Folge ist nun euer codierter Benutzername und Passwort. Jetzt können wir es als Attribut hinzufügen. Für den WEB-Zugriff wäre es:

Zu Bechten ist, dass man je nach verwendeten Zugang auch die anderen Zugriffsarten absichern sollten. Zum Beispiel der Zugriff übers Handy:

SSL HTTPS Passwort

Zum Schluss noch die Änderungen abspeichern und FHEM neustarten:

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:

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

Nun können wir das SSL Zertifikat erstellen:

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:

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

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

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.

2 Kommentare zu “SSL Verbindung: FHEM mit Passwort und HTTPS absichern

  1. 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

  2. Hallo Larimow,

    das ist natürlich ärgerlich. Eigentlich müsste es doch reichen in der fhem.cfg das Attribut basicAuth zu löschen. Aber das scheint ja nicht zu funktionieren. Komisch. Er fragt ja nach einem Benutzer und Passwort, das Einrichten hat ja anscheinend geklappt. Wie du bereits selber erwähnt hast, kann es natürlich sein, dass der Base62-String falsch ist.

    Ich habe es bei mir mal versucht die Passwortabfrage zu löschen. Habe dazu einfach in der fhem.cfg folgende Einträge komplett gelöscht:

    define allowed_WEB allowed
    attr allowed_WEB basicAuth RGxxxxxxxxxxxxxxxxxxxxxx
    attr allowed_WEB room Settings
    attr allowed_WEB validFor WEB

    Danach war die Passwortabfrage weg und ich konnte auf das FrontEnd zugreifen ohne ein Benutzer oder Passwort eingeben zu müssen.

    Gruß Daniel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*