WebUI mit SSL

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

wolwin
Beiträge: 135
Registriert: 06.06.2018, 12:27
Danksagung erhalten: 15 Mal

WebUI mit SSL

Beitrag von wolwin » 29.10.2019, 22:50

Hi,
hier mal für alle, die sich für SSL in der WebUI in der RaspberryMatic interessieren … nachdem mich der SSL Dialog in der WebUI in die Irre geleitet hat (…das erzeugte Zertifikat wollte einfach nicht zum Download auftauchen :lol: ), bin ich dann hier im Forum darauf gekommen, dass das Serverzertifikat automatisch in /etc/config/Server.pem abgelegt wird. Man muss dann damit leben, dass der Browser immer bei einer https Verbindung mit der WebUI darauf aufmerksam macht, dass das Zertifikat unbekannt ist - ein zugehöriges Client-Zertifikat wird meines Wissens nicht angeboten. Weiter gibt es kein http Redirect auf https - d.h. eigentlich ist das Zertifikatangebot m.E. 'wertlos' … 8)
Ich habe es jetzt so für mich geregelt, dass nun der Aufruf der WebUI im Heimnetz grundsätzlich über https läuft (auch bei http Aufruf) - so habe ich es auch auf meinen anderen RPIs angelegt (Mosquitto Server, etc.).

Dazu wurde zuerst mit openssl ein (individuelles) signiertes Serverzertifikat mit einem zugehörigen Clientzertifikat (Laufzeit 20 Jahre :mrgreen: ) generiert - die Zertifikate server-key.pem und server-cert.pem werden mit einem Editor zusammenkopiert und dann unter /etc/config/Server.pem abgespeichert. Bei allen Browser Clients im Heimnetzwerk wird die zugehörige Client-Zertifikatdatei cacert.pem eingespielt. Der gesamte Vorgang entspricht im Prinzip dem der RaspberryMatic (man darf nun natürlich nicht mehr über die WebUI ein Zertifikat anfordern !!).

Bleibt noch der http Redirect: hier habe ich die Konfigurationsdatei /etc/lighttpd/conf.d/proxy.conf gefunden, in der unterschiedliche WebUI Webserver Konfigurationen abgelegt sind - dort habe ich einfach zu Anfang folgende Zeilen eingefügt:

Code: Alles auswählen

$HTTP["scheme"] == "http" {
    # capture vhost name with regex conditiona -> %0 in redirect pattern
    # must be the most inner block to the redirect rule
    $HTTP["host"] =~ ".*" {
        url.redirect = (".*" => "https://%0$0")
    }
}
siehe auch: https://redmine.lighttpd.net/projects/1 ... ttpToHttps

Das ganze führt jetzt dazu, dass grundsätzlich alle Client-Browser eine http Anforderung in eine gesicherte https Verbindung zur WebUI aufbauen.

Anregung: vielleicht kann Jens ja mal einen Blick darauf werfen - ich halte eine http Verbindung - auch / gerade im Heimnetz - für nicht mehr zeitgemäß.

Gruß
Wolfram

roe1974
Beiträge: 584
Registriert: 17.10.2017, 16:15
Wohnort: Wien
Hat sich bedankt: 13 Mal
Danksagung erhalten: 3 Mal

Re: WebUI mit SSL

Beitrag von roe1974 » 30.10.2019, 22:08

Hallo Wolfram

Hast du für die openssl zert erstellung einen link zu einer anleitung ?

lg Richard

wolwin
Beiträge: 135
Registriert: 06.06.2018, 12:27
Danksagung erhalten: 15 Mal

Re: WebUI mit SSL

Beitrag von wolwin » 31.10.2019, 20:56

Hallo Richard,
roe1974 hat geschrieben:
30.10.2019, 22:08
Hast du für die openssl zert erstellung einen link zu einer anleitung ?
Schwieriges Thema … gestartet bin ich unter FHEM:

https://wiki.fhem.de/wiki/FHEM_mit_HTTP ... ungsstelle
Es gibt auch
https://sommer-huenxe.de/wordpress1/web ... tallieren/

Ich habe die certs auf einem RPI unter dem user pi über SSH erzeugt (alle Befehlzeilen mit sudo ….) mit
cd /etc/ssl
sudo mkdir local
wird in das Startverzeichnis gewechselt - dort landen dann alle Dateien...

Ich habe mir einen Ablaufplan (entsprechend der Vorlagen) in eine TXT-Datei geschrieben. Den Ablauf habe ich verifiziert und erweitert - damit habe ich alle meine RPIs mit Zertifikaten ausgestattet … kann ich leider nicht veröffentlichen, da sich dort einige Angaben befinden, die ich nicht veröffentlichen möchte …. :mrgreen:

Aber fang einfach mal an …. :D

Gruß
Wolfram

Benutzeravatar
jmaus
Beiträge: 5993
Registriert: 17.02.2015, 14:45
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Dresden
Hat sich bedankt: 16 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: WebUI mit SSL

Beitrag von jmaus » 31.10.2019, 21:10

Entschuldigung, aber was genau unterscheidet bitte die hier beschriebene Methode von der Art&Weise wie die RaspberryMatic völlig selbstständig beim drücken auf "Zertifikat erstellen" unter "Systemsteuerung => Netzwerkeinstellungen" das selbst erledigt? Denn soweit ich das überblicke macht RaspberryMatic genau das was hier beschrieben wird. Es generiert ein selbst signiertes Zertifikat und installiert das automatisch unter /etc/config/server.pem.

Das einzige was bisher gegenüber der hier beschriebenen Method fehlt ist eine automatische weiter/umleitung von http aus https. Aber das ist bereits auf der TODO Liste, benötigt aber noch ein paar zusätzlichen Veränderungen in der WebUI. So z.B. das vor aktiviert eine Warnung erscheint die auf den Umstand hinweist, das nach Aktivierung dann der Webbrowser einmalig (bis man das selbst-signierte Zertifikat als "sicher" akzeptiert) auf das selbst signierte Zertifikat hinweist bzw. warnt und man diese Warnung als dauerhaft akzeptieren muss.
RaspberryMatic 3.51.6.20200621 @ ESXi mit ~180 HomeMatic Geräten + ioBroker – GitHubGitHub Sponsors / PayPalTwitter

LibertyX
Beiträge: 719
Registriert: 10.11.2012, 19:47
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: RP
Hat sich bedankt: 1 Mal
Danksagung erhalten: 17 Mal

Re: WebUI mit SSL

Beitrag von LibertyX » 31.10.2019, 21:14

Er hat ein root CA erstellt (Zertifizierungsstelle) welches er auf seine Clients verteilt hat und in der CA hat er für jeden Server ein durch die CA signiertes Zertifikat generiert, somit wird dieses Zertifikat vom Browser als "Vertrauenswürdig" eingestuft und man erhält keine Meldung das es sich um ein Self signed Zertifikat handelt.

Kann man machen, macht das ganze aber nicht sicherer, dass einzige was man sich dadurch erspart ist das wegdrücken der Meldung im Browser.
RaspberryMatic (3.51.6.20200613) @RPI3 | 56 HM 1 HMIP Gerät(e) und 4 CUxD-Geräte (2.4.3) | iobroker.pro - CCU-Historian (2.4.0)

Benutzeravatar
jmaus
Beiträge: 5993
Registriert: 17.02.2015, 14:45
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Dresden
Hat sich bedankt: 16 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: WebUI mit SSL

Beitrag von jmaus » 31.10.2019, 21:33

LibertyX hat geschrieben:
31.10.2019, 21:14
Er hat ein root CA erstellt (Zertifizierungsstelle) welches er auf seine Clients verteilt hat und in der CA hat er für jeden Server ein durch die CA signiertes Zertifikat generiert, somit wird dieses Zertifikat vom Browser als "Vertrauenswürdig" eingestuft und man erhält keine Meldung das es sich um ein Self signed Zertifikat handelt.

Kann man machen, macht das ganze aber nicht sicherer, dass einzige was man sich dadurch erspart ist das wegdrücken der Meldung im Browser.
Und was er damit noch dazu gewinnt ist eine IMHO unnötige Komplexität im Management der Zertifikate und server keys. Wie du schon korrekt sagtest macht dieser zusätzliche Aufwand die HTTPS Verschlüsselung kein bit sicherer. Und IMHO muss man eben somit unnötigerweise all seinen Webbrowsern bzw. Systemen die Zertifikate seiner eigenen root CA erst unterjubeln und hat damit auch mehr oder weniger den selben Aufwand als einfach bei der ersten HTTPS Verbindung das Zertifikat als dauerhaft akzeptiert zu registrieren. Ergo, same same, but different :D
RaspberryMatic 3.51.6.20200621 @ ESXi mit ~180 HomeMatic Geräten + ioBroker – GitHubGitHub Sponsors / PayPalTwitter

strohfeuer
Beiträge: 191
Registriert: 19.09.2006, 12:59

Re: WebUI mit SSL

Beitrag von strohfeuer » 01.11.2019, 12:05

Hallo RaspberryMatic Freunde,

gibt es in der RaspberryMatic ein "Protokoll" woraus ersichtlich ist, wer per I-Net oder auch intern auf den Raspi zugegriffen hat ?
oder kann man sowas per Zusatzsoftware realisieren?
Vielen Dank für Eure Bemühungen und einen schönen Feiertag.

Strohfeuer

jp112sdl
Beiträge: 5876
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 256 Mal
Danksagung erhalten: 520 Mal
Kontaktdaten:

Re: WebUI mit SSL

Beitrag von jp112sdl » 01.11.2019, 12:55

strohfeuer hat geschrieben:
01.11.2019, 12:05
gibt es in der RaspberryMatic ein "Protokoll" woraus ersichtlich ist, wer per I-Net oder auch intern auf den Raspi zugegriffen hat ?
Passt zwar nicht zum eigentlichen Thema hier, aber kurz und knapp:
schau mal in die /var/log/lighttpd-access.log

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

strohfeuer
Beiträge: 191
Registriert: 19.09.2006, 12:59

Re: WebUI mit SSL

Beitrag von strohfeuer » 01.11.2019, 13:09

hallo jp112sdl,
wie komme ich dahin? (/var/log/lighttpd-access.log)
LG Strohfeuer

wolwin
Beiträge: 135
Registriert: 06.06.2018, 12:27
Danksagung erhalten: 15 Mal

Re: WebUI mit SSL

Beitrag von wolwin » 01.11.2019, 21:39

jmaus hat geschrieben:
31.10.2019, 21:33
Ergo, same same, but different :D
Hallo Jens,
hatte ich ja auch schon so in meinem ersten Beitrag geschrieben … letztlich bin ich als raspberrymatic Neueinsteiger über das SSL-Thema bei der Erstkonfiguration gestolpert … ich wollte nur auf die 'Inkonsistenz' zwischen lokaler SSL Zertifikatserzeugung und einem trotzdem möglichen http Browseraufruf hinweisen, den ich von einer professionellen Anwendung (Homematic) so nicht erwarten würde. Mein Ansatz sollte lediglich dazu dienen, zu checken, ob es eine Möglichkeit gibt, dass die Zentrale 'grundsätzlich nur per https aufrufbar' ist. :mrgreen:
Gruß
Wolfram

Antworten

Zurück zu „RaspberryMatic“