SEPIA-Framework / sepia-docs

Documentation and Wiki for SEPIA. Please post your questions and bug-reports here in the issues section! Thank you :-)
https://sepia-framework.github.io/
236 stars 16 forks source link

Probleme nach Setup DuckDNS and Let's Encrypt certificate #167

Closed cap-blackbeard closed 2 years ago

cap-blackbeard commented 2 years ago

Ich erreiche meinen SEPIA-Server nicht mehr per "Server-IP:20726/sepia/assist/tools/index.html" lokal im Netzwerk. Auch der Raspberry-Client bekommt keine Verbindung mehr zum Server. Der docker-Container scheint aber normal zu starten.

Ich habe die Installation nach der Beschreibung "https://github.com/SEPIA-Framework/sepia-docs/wiki/SSL-for-your-Server" durchlaufen und dachte, ich könne nach der Installation wie gewohnt von meinem Netzwerk intern auf den Server zugreifen.

Den Port 20276 möchte ich eigentlich noch nicht im Router freigeben, da ich vorher nen anderen Router kaufen wollte.

Hilfe ;-)

fquirin commented 2 years ago

Hast du die Option benutzt mit DuckDNS Domain? Falls ja wird die IP wahrscheinlich nicht funktionieren weil das SSL Zertifikat nur für die Domain gültig ist. Oder kam das alte SSL Zertifikat vom Router/NAS?

Ich denke es gibt 3 Möglichkeiten das Problem zu lösen:

1) Vielleicht hat dein Router eine Möglichkeit den Domainname direkt aufzulösen ohne extra aus dem Netzwerk rauszugehen (fixe DNS Einträge). Meiner macht das scheinbar automatisch, weil der glaube ich die letzte Ziel IP cached, zumindest hatte ich schon oft den Fall, dass das Signal gar nicht erst mein Netzwerk verlassen hat um die Domain -> IP Auflösung zu machen. Dann kannst du einfach die Domain statt die IP nutzen.

2) In Linux kann man auch die /etc/hosts Datei bearbeiten um die Domain direkt auf eine IP umzuleiten. Das klapp mal besser mal schlechter.

3) Du könntest im Nginx eine zusätzliche Konfiguration für lokale IPs anlegen, z.B. mit der self-signed Option. Ohne das jetzt genau getestet zu haben aber wenn du in den Ordner /etc/nginx/sites-enabled/ guckst liegt da wahrscheinlich eine Datei mit deiner DuckDNS Domain im Namen oder mindestens eine sepia...https Datei. Die einfach mal sichern und dann das self-signed SSL Setup ausführen. Falls die alte Datei danach nicht weg ist solltest du 3 Möglichkeiten haben deinen Server zu erreichen: https://Server-IP:20726, http://Server-IP:20727 und https://DOMAIN:20726. Für https://Server-IP:20726 müsstest du dann jeweils im Client noch das self-signed SSL Zertifikat importieren.

cap-blackbeard commented 2 years ago

Das '...duckdns.org.conf' Certifikat habe ich erstmal komplett entfernt/ verschoben. Darum kümmere ich mich später ;-)

Ich habe jetzt die self-signed Option installiert. http://IP:20727 funktioniert https://IP:20726 klappt nicht - woran kann das liegen? https://IP:20726/sepia/assist/app/index.html ist nicht erreichbar.

fquirin commented 2 years ago

Ist die HTTPS Adresse gar nicht zu erreichen, auch nicht im Browser? Oder beschwert er sich wegen dem self-signed SSL Zertifikat?

Da das Zertifikat selbst gemacht ist muss man es noch importieren im jeweiligen Client. Im DIY Client gibt es dafür z.B. das Script import_self_signed_SSL_cert.sh. Theoretisch müsste dann sowas gehen: bash import_self_signed_SSL_cert.sh "IP:20726" sepia-home Eventuell muss man danach noch das System neu starten, sollte zwar eigentlich nicht der Fall sein, aber ich hatte hin und wieder das Problem, dass auch nach dem Import Chromium nicht zufrieden war. Am Windows PC kann man das Zertifikat über den Browser selbst speichern und importieren, in Android gibt es auch Möglichkeiten, einfach mal Googeln. Das hat bisher immer gut geklappt bei mir.

[EDIT] Eventuell funktioniert Chromium auch mit dem zusätzlichen Flag --ignore-certificate-errors (in der client run.sh), wobei es nicht ratsam ist alle Zertifikate zu akzeptieren. Es gibt auch --ignore-certificate-errors-spki-list ... da muss ich mal mit experimentieren ^^.

cap-blackbeard commented 2 years ago

Ist die HTTPS Adresse gar nicht zu erreichen, auch nicht im Browser?

Genau. Edge erreicht die Seite nicht.

Den DIY-Client würde ich weiterhin direkt über http laufen lassen. Das klappt super. Aber mein Ziel ist schon irgendwann einmal Sepia über das iPhone benutzen zu können. Daher wäre mein Zwischenschritt, das self-signed SSL Zertifikat lokal von zu Hause benutzen zu können. Für die Verbindung von draußen möchte ich vorher nen anderen Router kaufen. Da ich momentan so einen alten Telekom SpeedPort im Einsatz habe möchte ich das Ziel erst noch hinten anstellen.

fquirin commented 2 years ago

Genau. Edge erreicht die Seite nicht.

Das ist Windows Edge am PC nehme ich an? Wenn die http Adresse auf port 20727 funktioniert sollte er mit https und port 20726 eigentlich zumindest den Fehler zeigen "abgelehnt wegen Zertifikat" (grob gesagt ^^) und dir einen "Erweitert" Button anbieten um den Fehler zu ignorieren. Versuch vielleicht mal die URL ohne Pfad hinten also https://[hostname].local:20726 oder https://[IP]:20726

Für die Verbindung von draußen möchte ich vorher nen anderen Router kaufen

Ja das ist sicherlich ratsam. Man sollte schon genau darauf achten, dass man nicht aus versehen das Heimnetz nach außen öffnet :sweat_smile: . In den SEPIA Server Settings gibt es auch noch eine Sektion "protected accounts" wo man User IDs eintragen kann, das ist ratsam um zu verhindern/erschweren, dass Account Passwörter via brute-force Methode geknackt werden.

cap-blackbeard commented 2 years ago

An manchen Tagen schäme ich mich für mich selbst! Man muss ja eigentlich nur Lesen.

Habe bei der Konfiguration jetzt zuerst Punkt 5: Clean up and remove ALL old SEPIA configs from NGINX... ausgeführt. Und dann erst mit Punkt 4: Set up NGINX with self-signed SSL... weiter gemacht.

Läuft jetzt!

fquirin commented 2 years ago

Diese ganze Proxy und SSL Geschichte ist ja etwas kompliziert, also da muss man sich für nix schämen ;-) Hauptsache es klappt jetzt! :-)