Raspberry Pi & HTTPS: Unterschied zwischen den Versionen
(Rechtevergabe für Zertifikatsverzeichnis ergänzt) |
K (little typo ;-)) |
||
(19 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Dieser Artikel beschreibt das Vorgehen unter '''Linux'''. Um unter '''Windows''' ein SSL Zertifikat zu erstellen hilft eine Bat Datei aus diesem {{Link2Forum|Topic=8810|Message=46726|LinkText=Forenbeitrag}}. | |||
Damit das Kennwort verschlüsselt übertragen wird, ist eine HTTPS Verbindung wichtig. | |||
Die folgenden Schritte sind direkt auf dem [[Raspberry Pi|Raspberry]] oder über ein Terminal auszuführen. | |||
Zunächst müssen folgende Pakete nachinstalliert werden: | Zunächst müssen folgende Pakete nachinstalliert werden: | ||
<nowiki>sudo apt-get update | <nowiki>sudo apt-get update | ||
sudo apt-get install | sudo apt-get install libio-socket-ssl-perl | ||
sudo apt-get install | sudo apt-get install libwww-perl</nowiki> | ||
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: | |||
<nowiki>cd /opt/fhem | |||
sudo mkdir certs</nowiki> | |||
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: | |||
<nowiki>openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem</nowiki> | <nowiki>cd /opt/fhem/certs | ||
sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem</nowiki> | |||
Damit das SSL-Modul die erzeugten Dateien verwenden kann, muss das certs-Verzeichnis Ausführrechte haben | 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 | ||
<nowiki> | <nowiki>sudo chmod 644 /opt/fhem/certs/*.pem | ||
chmod 711 certs | sudo chmod 711 /opt/fhem/certs</nowiki> | ||
Damit auch FHEM auf das Verzeichnis zugreifen darf (z.B. wenn <code>attr global backup_before_update</code> gesetzt ist), muss noch der Besitzer geändert werden. | |||
<nowiki> | |||
sudo chown -R fhem:dialout /opt/fhem/certs/</nowiki> | |||
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. habt ihr mehrere Webinstanzen (z.B. WEBphone, WEBtablet) oder hattet 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 die folgenden Attribute in der angegebenen Reihenfolge | |||
<nowiki>attr WEB HTTPS</nowiki> | <nowiki>attr WEB sslVersion TLSv12:!SSLv3 | ||
attr WEB HTTPS 1</nowiki> | |||
Sowie das Attribut auf HTTPS geändert wurde ist, HTTPS aktiviert und FHEM nur noch über https://192.168.n.n:8083/fhem erreichbar. Ihr merkt das sofort, da ein Browserzugriff auf FHEM unter dem aktuellen http Zugriff nicht mehr möglich ist. Einfach http gegen https austauschen. Es kommt eventuell noch eine Browseranfrage, ob ihr diesen https Zugriff zulassen wollt. Zugriff erlauben und es ist der Zugriff auf FHEM wie gehabt möglich, nur halt gesichert. | |||
Nicht vergessen, die Konfiguration zu speichern, damit die Änderungen beibehalten werden. Es ist wichtig die Adresse mit https:// aufzurufen, da keine automatische Weiterleitung von http auf https existiert. | |||
[[Kategorie:HOWTOS]] | [[Kategorie:HOWTOS]] |
Aktuelle Version vom 23. Juni 2017, 10:08 Uhr
Dieser Artikel beschreibt das Vorgehen unter Linux. Um unter Windows ein SSL Zertifikat zu erstellen hilft eine Bat Datei aus diesem Forenbeitrag.
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
Damit auch FHEM auf das Verzeichnis zugreifen darf (z.B. wenn attr global backup_before_update
gesetzt ist), muss noch der Besitzer geändert werden.
sudo chown -R fhem:dialout /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. habt ihr mehrere Webinstanzen (z.B. WEBphone, WEBtablet) oder hattet 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 die folgenden Attribute in der angegebenen Reihenfolge
attr WEB sslVersion TLSv12:!SSLv3 attr WEB HTTPS 1
Sowie das Attribut auf HTTPS geändert wurde ist, HTTPS aktiviert und FHEM nur noch über https://192.168.n.n:8083/fhem erreichbar. Ihr merkt das sofort, da ein Browserzugriff auf FHEM unter dem aktuellen http Zugriff nicht mehr möglich ist. Einfach http gegen https austauschen. Es kommt eventuell noch eine Browseranfrage, ob ihr diesen https Zugriff zulassen wollt. Zugriff erlauben und es ist der Zugriff auf FHEM wie gehabt möglich, nur halt gesichert. Nicht vergessen, die Konfiguration zu speichern, damit die Änderungen beibehalten werden. Es ist wichtig die Adresse mit https:// aufzurufen, da keine automatische Weiterleitung von http auf https existiert.