Raspberry Pi & HTTPS

Aus FHEMWiki
Version vom 18. April 2017, 07:43 Uhr von Mahowi (Diskussion | Beiträge) (Links auf "Raspberry Pi" und "FHEMWEB" gesetzt)

Dieser Artikel beschreibt das Vorgehen unter Linux. Um unter Windows ein SSL Zertifikat zu erstellen hilft eine Bat Datei aus dem FHEM Users Forum: https://groups.google.com/d/msg/fhem-users/uYNhSombpFw/UsRA9gmkKaEJ


Damit das Kennwort verschlüsselt übertragen wird, ist eine HTTPS Verbindung wichtig.

Die folgenden Schritte sind direkt auf dem Raspberry oder über ein Terminal auszuführen. Zunächst müssen folgende Pakete nachinstalliert werden:

sudo apt-get update
sudo apt-get install libio-socket-ssl-perl
sudo apt-get install libwww-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.