Raspberry Pi & HTTPS
Damit das Kennwort verschlüsselt übertragen wird, ist eine HTTPS Verbindung wichtig.
Die folgenden Schritte sind direkt auf dem Raspberry oder über einen Terminal auszuführen. Zunächst müssen folgende Pakete nachinstalliert werden:
sudo apt-get update sudo apt-get install perl-io-socket-ssl sudo apt-get install libio-socket-ssl-perl
Anschließend muss noch im fhem-Verzeichnis (befindet sich in der Regel unter /opt) das Verzeichnis "certs" für die Zertifikate erstellt werden. Dies geht wie folgt:
cd /opt/fhem sudo mkdir certs
In dieses Verzeichnis kommen zwei Dateien die mithilfe von OpenSSL erstellt werden: server-key.pem und server-cert.pem. Dazu wechselt man in das neu erstellte Verzeichnis. Auf der Konsole ist nun folgendes auszuführen:
cd /opt/fhem/certs sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
Damit das SSL-Modul die erzeugten Dateien verwenden kann, muss das certs-Verzeichnis Ausführrechte haben (es ist auch kein Fehler, wenn die Dateien selbst nur die nötigsten Rechte haben). Die Berechtigungen werden wie folgt gesetzt
sudo chmod 644 /opt/fhem/certs/*.pem sudo chmod 711 /opt/fhem/certs
Das war auch schon alles was man auf dem Raspberry Pi über die Konsole tun muss. Als nächstes öffnen wir FHEM im Browser. Hier müssen wir nun die Web Instanz suchen welche wir auf HTTPS umstellen möchten. In der Regel ist diese Instanz als WEB angelegt. Evtl. hab ihr mehrere Webinstanzen (z.B. WEBphone, WEBtablet) oder hab das Define anders benannt, dann müsst Ihr die folgenden Angaben entsprechend ändern.
Wechselt in FHEMWEB in die Detailansicht des Define WEB (die URL lautet z.B. http://fhem:8083/fhem?detail=WEB). Dort setzt Ihr nun das folgende Attribut
attr WEB HTTPS
Damit ist HTTPS aktiviert. Nicht vergessen die Konfiguration zu speichern, denn erst nach einem Neustart erfolgt der Zugriff per HTTPS über https://192.168.n.n:8083/fhem . Es ist wichtig die Adresse mit https:// aufzurufen, da es keine automatische Weiterleitung von http auf https existiert.