Unifi Nginx Proxy Manager Nextcloud

Sehr geehrte Community,

ich möchte versuchen eine SSL / HTTPS Verbindung zu Nextcloud aufzubauen ohne, dass ich eine Domain über die WAN Schnittstelle nutzen muss. Also nur im im lokalen Netzwerk.

Ich finde bislang nur Lösungen, wo ich über eine Portweiterleitung im Router (Unifi UDM Pro) und einer externen Domain dies ermöglich kann. Das muss doch irgendwie lokal funktionieren, da ich es auch nur dort erreichen muss.

Ich habe folgendes versucht:
Auf meinem Unraid Server habe ich den Docker Nextcloud sowie Nginx Proxy Manager (NPM) am laufen. Beide hosten über eine eigene IP.

Nun habe ich für den NPM ein Local DNS Record eingerichtet:
image

Dann in NPM folgendes versucht:

Wie man Sieht mit Internal Error.
Log vom Docker:
[10/19/2023] [12:18:25 AM] [Express ] › :warning: warning Command failed: certbot certonly --config “/etc/letsencrypt.ini” --work-dir “/tmp/letsencrypt-lib” --logs-dir “/tmp/letsencrypt-log” --cert-name “npm-9” --agree-tos --authenticator webroot --email “xxxxx@gmail.com” --preferred-challenges “dns,http” --domains “nextcloud.npmtest.com

Denke ich mir das zu einfach? Einen Pi Hole dafür wollte ich jetzt nicht unbedingt nur dafür realisieren.

Es sind meine ersten versuche und betreibe noch keine sensiblen Dokumente auf dem Server. Ich möchte es aber verstehen und realisieren. Über eure Hilfe würde ich mich sehr freuen.

Auch wenn ich ein PI-Hole Docker installiere und den DHCP DNS Server bei meinem Router (UDM Pro) für das Standard Netzwerk einrichte:

Dann erreiche ich den NPM erfolgreich:

wenn ich im PI-Hole mit der Domain Bezeichnung auf die IP von NPM verweise:
image

Sobald ich aber die Weiterleitung (Proxy Host) zu Nextcloud in NPM realisieren möchte erhalte ich bei SSL wieder ein Internal Error:

Im Log des Dockers wieder:

Wenn es ohne SSL in NPM eingerichtet ist. Lande ich wieder auf den Congratulation Seite von NPM. Wo habe ich was falsch gemacht?

Ich habe jetzt nochmal versucht, die Ports 80 und 443 in der UDM Pro weiterzuleiten. Aber auch hier die gleiche Fehlermeldung / Warnung. Ich verstehe nicht wo das Problem ist

so wie ich das sehe hast du 2 unterschiedliche Probleme

  1. der NPM kann keine Zertifikat erstellen
  2. der Server soll intern erreicht werden

Du solltest diese Probleme nacheinander angehen. Für das Problem 1. musst du

  • einen validen öffentlichen DNS Namen besorgen (DynDNS auch OK) - weil letencrypt wie alle öffentlichen CAs Zertifikate nur für gültige DNS Namen erstellt
  • den DNS record auf die public IP deiner Routers konfigureren
  • im Router Port Forwarding für 80 und 443 zum NPM konfigurieren

Sobald dein System ein gültiges Zertifikat hat und (extern) mit https erreichbar ist, kannst du Problem 2. angehen indem du im internen Netz ein DNS mit der lokalen IP des NPM konfigurierst (mit Pi-Hole oder wie auch immer).

BTW: wenn du im NPM screenshot deine Email publizierst brauchst du sie im docker log nicht auszublenden :stuck_out_tongue_winking_eye:

2 Likes

Sind aber nicht gerade günstig diese .host Domains und nextcloud.host ist schon weg :wink: .HOST | Domain Names

Vielen Dank für die Erläuterungen. Die Infos haben mir noch gefehlt um zu verstehen, dass mein Vorhaben so nicht funktioniert. Ich habe eine ipv64 domain angelegt um per Wireguard in mein Netzwerk zu gelangen. In erster Linie reichte das für mich und alles weitere wollte ich Lokal lösen. Da Nextcloud aber ein Problem damit hat, wenn keine https Verbindung besteht hatte ich eben über so eine Lösung nachgedacht. Aber anscheinend komme ich nicht drumherum eine Subdomain bei ipv64 anzulegen und das per NPM zum Nextcloud zu routen.

Verliere ich denn so ein Stück Sicherheit, mit der Portweiterleitung? Nun gut ich könnte dann noch IP Block/Allow Listen erstellen. Ich bin für jeden Hinweis dankbar und auch über negative Kritik mit Verbesserungsvorschlägen.