Forum: Mikrocontroller und Digitale Elektronik ESP8266 als HTTPS Server verwenden


von Theo (Gast)


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

von TestX (Gast)


Lesenswert?

ganz ehrlich ? das ding ist ein mikrocontroller....kein high performance 
wunder...https kannsr du dir da sparen da du moderne ciphers wie ecdsa 
etc performancebedingt nicht inplementiert bekommst.

für soetwas ist ein raspberry zero w die wesentlich bessere wahl!

von Stefan F. (Gast)


Lesenswert?

Zwar gibt es eine TLS implementierung, aber die lässt alle Zertifikate 
ungeprüft durch und ist daher unsicher. Außerdem sind Performance und 
RAM des ESP8266 zu klein, dass man damit etwas vernünftiges anfangen 
kann.

von Theo (Gast)


Lesenswert?

OK. Habt ihr dann andere Vorschläge, wie ich den Application Cache 
wieder nutzen kann? Wie gesagt, alle Browser setzen, eine Verbindung 
über https voraus.

Grüße

von Horst (Gast)


Lesenswert?

Nimm seinen großen Bruder, den ESP32

von temp (Gast)


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.

von Stefan F. (Gast)


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.
von Stefan F. (Gast)


Lesenswert?

> TestX schrieb:
etwas

Birgel schrieb im Beitrag #5727041:
> Warum mutest du mir deine stümperhafte Rechtschreibung zu?

Du warst gar nicht angesprochen. Warum platzt du hier von der Seite 
herein ohne etwas zum Thema beizutragen?

von Theo (Gast)


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

von A. F. (artur-f) Benutzerseite


Lesenswert?

Ich verstehe nicht ganz wo das Problem ist, warum willst du unbedingt 
den Browsercache verwenden? Lass es doch weg. Wenn die Bilder eine 
anständige Komprimierung haben, werden die auch recht flot vom ESP 
geladen.

von Theo (Gast)


Lesenswert?

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.


Grüße

von Sascha W. (sascha-w)


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

von Theo (Gast)


Lesenswert?

Guten Morgen Zusammen,

danke für eure Tipps. Ich habe jetzt eine Android App geschrieben. Es 
werden nun alle Dateien lokal auf dem entsprechenden Gerät gehalten und 
es gehen nur noch XMLHttpRequests mit den dynamischen Daten an den 
Server und zurück.
Funktioniert sehr gut.

Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.