Lokale Webanwendung auf Raspberry hosten

goblingift

Lieutenant
Registriert
Juli 2006
Beiträge
754
Hallo zusammen,

ich habe auf einem Raspberry PI 4B eine kleine Webanwendung entwickelt und möchte diese den Benutzern via WIFI-Hotspot (hostapd) aufrufen lassen.

Das funktioniert leider nur mäßig- folgende Probleme treten hierbei auf:
  • Dadurch dass der Raspberry als WIFI-Hotspot kein Internet den verbundenen Smartphones anbietet, meckern da schon einige (Android vor allem)
  • Ich habe via dnsmasq.d im Raspberry einen lokalen hostname "application.local" definiert - leider lässt sich das bei den wenigsten Benutzern im Browser aufrufen- die meisten Browser (Android) können das nicht auflösen oder googeln die Adresse dann...
  • Zuletzt wird die Seite (Wenn man sie mal aufgerufen bekam - z.B. über die lokale IP des Raspberrys) dann noch als unsicher eingestuft und einige Browser meckern hier auch nochmal kräftig...

Habt ihr so ein ähnliches Szenario schonmal gehabt? Kann man sowas vernünftig zum Laufen bekommen oder ist es vermutlich einfacher die Anwendung auf einen Server/Domäne abzulegen, mit SSL-Zertifikat?

Meine Grundidee war eben, die Anwendung auch in Gebieten ohne Internetempfang auszuführen.
 
Ohne übermäßig Ahnung davon zu haben: Lassen sich PWAs nach erstmaliger Ausführung nicht auch offline ausführen? Vielleicht wäre das eine sinnvolle Deployment-Option.
 
Hostapd macht ja erst einmal "nur" ein WLAN auf und erlaubt das verbinden. Dann brauchst einen DHCP-Server auf dem Raspi, das kann auch dnsmasq mit erledigen.
Die TLD .local wird inzwischen für manch andere Sachen verwendet, hier würde ich einen Phantasienamen verwenden. Wenn du da beispielsweise Bilder zeigen willst dann nimm als Adresse 'fotos.app'.
Im dnsmasq musst dann sagen, dass er authoritativer DNS-Server für die Zone .app ist und fotos.app ist er selbst. Oder du verteilst im dhcp-Teil des dnsmasq die search-domain mit an die Clients und pusht so .app als Search Domain. Dann sollte für die Browser entsprechend ein 'fotos' reichen.

Das wären meine ersten Ansätze.

Das Androids (korrekterweise) meinen, sie hätten kein Internet stimmt in dem Fall ja auch. Witzigerweise wird das auch angezeigt wenn man sich in China oder anderen Staaten/Gegenden mit restriktivem Netzzugang aufhält da die Konnektivitätsprüfung daraus besteht zu gucken ob ein paar Googleseiten/-dienste erreichbar sind^^
 
Für LetsEncrypt bräuchte der TE aber eine gültige/anerkannte Domain und ich würde dann per DNS Challenge das Zertifikat holen, auf den Raspi packen und der dnsmasq auf dem Raspi müsste dann behaupten für diese Domain der authoritative DNS zu sein. Ziemliches Gefrickel aber machbar. Nervig wird es dann regelmäßig das Zertifikat zu erneuern. Problematisch wird es wenn der Raspi wirklich nur ein lokales WLAN aufmacht ohne Upstream denn dann wird es problematisch mit der Uhrzeit am Raspi wenn dieser nicht 24x7 läuft. Ein halbwegs korrektes Datum und Uhrzeit sind aber essentiell bei Zertifikaten. Bei dem Aufwand kann man das Projekt auch gleich auf irgendnen Hoster packen aber der TE wird vermutlich seine Gründe haben für die Insellösung.

Weitere Alternative: Das Webprojekt nur per HTTP anstatt HTTPS anbieten. Solange keine Credentials etc notwendig sind wäre das eine Option.
 
Das erneuern geht meines Wissens nach automatisch auch mittels Cronjob, sollte kein großes Problem sein. Wenn ein interner Server mit Verschlüsselung laufen soll gibt es ansonsten noch selbstgeschnitzte Zertifikate und man richtet die bei den Clients als vertrauenswürdig ein. KA ob das auf Android überhaupt geht. Android Browser werden sich vermutlich bei http ebenfalls beschweren.

https://blog.heckel.io/2018/08/05/issuing-lets-encrypt-certificates-for-65000-internal-servers/
https://techmonger.github.io/49/certbot-auto-renew/
 
Natürlich lässt sich mit LetsEncrypt und nem passenden ACME-Client die Erneuerung automatisieren. wenn der Raspi aber alleine ohne Internetanbindung läuft und per hostapd ein simples WLAN aufspannt dann muss man sich alle paar Wochen/Monate einen Weg überlegen wie das dann neue Zertifikat auf den Raspi kommt. Ebenso bleibt dann noch das Thema der Uhrzeit und Datum offen sofern man dem Raspi nicht noch eine RTC spendiert.
 
Zurück
Oben