ESP8266 als HTTPS Server verwenden

Gast #5726554
Lesenswert?

Hallo Zusammen,

Ich nutze den ESP8266 als Webserver. Der ESP hostet eine Website die 
unteranderem "Bildchen" beinhaltet, wesshalb ich den Application Cache 
des Browser verwende.
Seit ein paar Monaten erlauben alle gängigen Browser die Verwendung des 
Apllication Caches nicht mehr wenn die Verbindung zum Server (in dem 
Fall zum ESP 8266) nicht über https stattfindet. Desshalb, und auch 
generell, ist es denke ich sinnvoll via https zu kommunizieren.

Ich habe ein Beispiel gefunden, bei dem der ESP vermutlich als HTTPS 
WebServer verwendet wird.

https://github.com/thorsten-l/ESP8266-HTTPS-SampleServer

Allerdings läuft dieser Sketch bei mir nicht. Hat jemand von euch schon 
mal einen HTTPS Server mit einem ESP realisiert, oder kennt jemand das 
verlinkt Beispiel und kann mir weiter helfen?

Danke schon mal und
Grüße Theo
Gast #5726979
Lesenswert?

Ohne das Gesamtsystem zu kennen ist es schwer Vorschläge zu machen. 
Einer wäre einen globalen https Server als Proxy zu verwenden. Der kann 
dann alle statischen Sachen direkt ausliefern und die dynamischen holt 
er vom entsprechenden ESP per http. Mehrere ESPs werden dann über die 
URL unterschieden. Das hat auch den Vorteil, dass man sich grafisch 
ausferkeln kann ohne die Resourcen des kleinen Controllers zu sprengen. 
Bei Änderungen an den Teil ist dann auch kein Neuflashen des ESP nötig. 
Außerdem kann man alle Möglichkeiten eines 'richtigen' http(s)-Servers 
nutzen und somit die ESPs vor Angriffen aus dem Netz schützen. Aber wie 
gesagt, wir wissen nicht mal ob das überhaupt am Internet hängt.
Für meine Heimautomation habe ich einen Apache im Internet laufen. Das 
ist das öffentliche Einfallstor, das entsprechend abgesichert werden 
muss. Dann gibt es noch einen ssh-Tunnel nach Hause über den der 
öffentliche Apache dynamische Inhalte aus meinem Netz holt. Damit ist 
nicht ein einziger offener Port auf meinem Router nötig und selbst 
http-Requests werden durch den ssh-Tunnel verschlüsselt.
Gast #5727019
Lesenswert?

Die "einfache" Lösung wäre, wie übliche einen Apache HTTP(s) Server 
dazwischen zu schalten. Aber ich schätze mal, das wolltest du in diesem 
speziellen Fall gerade vermeiden.

Jedenfalls solltest du diese kleinen Mikrocontroller ohnehin nur lokal 
nutzen. Nicht im öffentlichen Internet - auch nicht durch einen mehr 
oder weniger transparenten Proxy. Dafür sind sie einfach zu unsicher und 
wenn es mal zu einem Einbruch kommt, kann niemand nachvollziehen, wie es 
passiert ist.

Falls das irgendwie über Internet erreichbar ist, stimme ich meinem 
Vorredner zu:
Dann sollte ein ausgewachsener Applikations-Server (z.B. Apache HTTP 
Server oder Tomcat) das ganze Webinterface realisieren. Der ESP würde 
nur noch simple Kommandos wie "Licht 3 an" empfangen. Der ganze Security 
Kram wäre Aufgabe der ausgewachsenen Server.
Beitrag #5727041 wurde von einem Moderator gelöscht.
Gast #5731522
Lesenswert?

Hallo Zusammen,

danke für eure Ausführungen. Der ESP hängt bei mir nicht im Internet, 
sondern wird nur local im Access Point Modus genutzt. Die Website die er 
bereit stellt dient als Steuer und Kontroll Übersicht für meine 
Anwendung.
Wie schon erwähnt, geht es mir auch nicht unbedingt um eine https 
Verschlüsselung sondern nur darum, das ich den Application Cache des 
Browsers wieder verwenden kann (Das ging bis vor einem halben Jahr ohne 
Probleme, als die Browser ohne Einschrännkung die Verwendung des 
Applikation Caches zu ließen.). Dieser funktioniert nämlich nur, wenn 
der Browser über https mit dem Server kommunizieren kann.

Evtl. hat noch einer ne Idee.

Was mir auch helfen würde: Ein Tool, welches bestehenden html und 
javascript Code in eine Android App konvertiert.

Danke und Grüße Theo
#5732296
Lesenswert?

Theo schrieb:
> Eine Seite mit 8 Bildern, die als Buttons verwendet werden, lädt auch
> bei guter Komprimierung nur Stück für Stück. Das finde ich sehr unschön,
> deshalb der AppCache.
was verwendest du auf dem ESP als HTTP Server?
Man kann auch alle Bilder in einer Bilddatei zusammenfassen und per CSS 
in jedem Button den entsprechenden Ausschnitt anzeigen - dann wird nur 
eine Bilddatei geladen und es erscheint bei allen gleichzeitig.

Sascha

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren