[TUT] Lets Encrypt https ohne offene Ports

  • Alle Angaben und Screenshots wurden eigenständig erstellt, es wurden hierfür keine externen Quellen verwendet.
    Yes

    Lets Encrypt Verschlüsselung für alle Dienste über DNS-01 Challenge und ohne offene Ports! Und nicht von außen erreichbar, außer eben über VPN ins Heimnetzwerk Wireguard

    Voraussetzung:

    [TUT] Portainer - Installationsanleitung

    [TUT] MacVlan konfigurieren - Schritt für Schritt Anleitung

    [TUT] Nginx Proxy Manager in Portainer installieren

    [TUT] AdguardHome - Werbeblocker

    Wenn diese Dienste bei euch eingerichtet und konfiguriert sind können wir nun im Nginx starten:

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Geht dort auf den Reiter SSL Certificates.

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Auf Add SSL Certificate wählt dort Let`s Encrypt aus.

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Das Bild sollte selbsterklärend sein in meinem Beispiel habe ich DuckDNS genommen das werden die meisten hier verwenden. Wo ihr die den API-Token für die LE Zertifikate bekommt, müsst ihr bei DuckDNS schauen.

    Wenn ihr diesen schritt, erfolgreich durchlaufen habt, ist SSL auf der gesamten Domain und Subdomains aktiv.

    Nun könnt ihr die erste Subdomain mit gültigem Zertifikat erstellen.

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Klickt auf Add Proxy Host.

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Wählt im nächsten Bild euer gerade erstelltes Zertifikat aus:

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Damit seid ihr im Nginx soweit fertig weiter in Adguard:

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Erstellt eine neue DNS Umschreibung und tragt dort Bitte die Hauptdomain inklusive *. ein und leitet diese auf die IP eures Nginx weiter.

    This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Fertig ab jetzt könnt ihr alle eure Dienste Lokal mit SSL versehen ohne auch nur einen Port nach außen Öffnen zu müssen. Ich hoffe, meine Anleitung kann dem ein oder anderen Helfen.

  • Hm, irgendwas muss ich wohl noch einstellen...

    Also ich will einen Server von außen erreichbar machen. nginx konfiguriert, SSL konfiguriert, server konfiguriert, alles läuft (von außen)

    Aber wenn ich versuche von innen (LAN) per domain auf meinen Server zuzugreifen funktioniert das nicht. Bei mir kommt immer die Loginseite der Fritzbox. Ich habe bei der Fritzbox aber schon bei Heimnetz->Netzwerk->Netzwerkeinstellungen->IPv4-Einstellungen auch schon den DNS server auf adguard gesetzt. Zusätzlich habe ich die Domains in den DNS-Rebind-Schutz eingetragen. Hilft leider alles nichts. Es kommt trotzdem noch die Fritzbox-Seite.

    Hast du noch Ideen?

    Also der richtige DNS Server kommt am PC an, das habe ich überprüft.

    Edited once, last by Klonk: Ergänzungen (June 11, 2025 at 8:57 PM).

  • Hmm, da ich das woanders auch schon gelesen hatte:

    Könnte das Problem von IPv6 kommen?

    Meine Domains und subdomains liefern beim Ping eine IPv6 Adresse und bei allen domains und subdomains die gleiche, was logisch ist, da sie alle auf die Fritzbox zeigen (ist die IPv6 der Fritzbox)

  • Hmm, da ich das woanders auch schon gelesen hatte:

    Könnte das Problem von IPv6 kommen?

    Meine Domains und subdomains liefern beim Ping eine IPv6 Adresse und bei allen domains und subdomains die gleiche, was logisch ist, da sie alle auf die Fritzbox zeigen (ist die IPv6 der Fritzbox)

    Normalerweise leitest du deine Domain bzw. Subdomain auf die IP und port deines Dienstes in nginx um. Deshalb würde ich ipv6 als Problem ausschließen.

  • Wenn Du eine öffentliche IPv4 hast, und diese auch nutzt, kannst Du doch die IPv6 einfach im Router deaktivieren, dann kommt die doch schon mal garantiert nicht mehr sichtlich in die Quere.

    Meine Hardware

    iDX6011 Pro in Späh ^^

    DXP4800+ 2x8TB WDRedPl Btrfs Raid1 2x 2TB Lexar NM790 Raid1, 64GB RAM Kingst. KVR48S40BD8-32 DDR5/4800MH

    DXP2800 1x 12TB Seag. 1x 12TB WDRedPl, Raid1 Btrfs 16GB RAM Cruc. CT16G56C46S5.C8B2, 2x NVME Samsg,

    DS1525+ 2x8TB WD, Btrfs SHR, 2x 2TB NVME Lexar NM790 Raid1. 40GB ECC RAM_Speicher.de

    DS920+ DSM 7.3.2 Btrfs Raid1 2x8TB WD, 2x2TB Samsg. 970 EVOPlus, RAM 20GB DDR4-2666MHZ Speicher.de

    USV US3000, EatonEllip.PRO 850DIN, Switch Zyxel GS1200-8 1GB, Zyxel XMG-108 8 x 2,5GB

  • Ich konnte jetzt verifizieren (gestern war es einfach schon zu spät):

    Es liegt eindeutig an IPv6, ich weiß nur noch nicht genau warum (kann nginx evtl. nicht mit IPv6 umgehen oder Portweiterleitungen funktionieren bei IPv6 nicht, oder Portweiterleitungen müssen für IPv6 bei der Fritzbox anders erfolgen?). Ich kenne mich zwar bei IPv4 einigermaßen aus, aber bei IPv6 noch nicht so wirklich. Ich muss mich diesbezüglich mal einlesen.

    Fakt ist: Sobald ich IPv6 deaktiviert habe, funktioniert es. Ich brauche dann auch keine Einträge in DNS-Rebind und auch kein Adguard. Dabei spielt es keine Rolle, ob in der Fritzbox IPv6 nach außen oder nach innen deaktiviert ist. Ein Ping zur domain liefert dann auch ein IPv4-Adresse (die der Fritzbox)

    Da es bei mir erst funktioniert hatte und am nächsten Tag nicht, lag wohl daran, dass die Verbindung an einem Tag über IPv4 und am andern Tag über IPv6 erfolgt ist.

    Ich werde jetzt IPv6 wieder aktivieren und das über mehrere Tage verfolgen mittels Ping und Erreichbarkeit des Servers (Erreichbarkeit per IPv4 oder IPv6).


    Ha, musste gar nicht lange warten. Sobald ich IPv6 aktiviert habe ging der Ping auf eine IPv6 Adresse und der Server war über die Domain nicht mehr erreichbar.

    IPv6 deaktiviert (Router Advertisement in der Fritzbox) und schon geht der Ping auf eine IPv4 Adresse und die Domain ist wieder erreichbar.

    Edited once, last by Mike0185: Ein Beitrag von Klonk mit diesem Beitrag zusammengefügt. (June 12, 2025 at 7:51 AM).

  • Ich bin auch nicht mit IPv6 bewandert, aber IOv6 braucht keine IP mehr, da alle Geräte im Netz einzeln und direkt anhand der Mac Adresse angesprochen werden.

    Evtl. schaut ja Benares mal hier vorbei , der kennt sich da ganz gut aus und kann zumindest ein bisschen mehr Licht in die Sache bringen, warum ,was weshalb ....

    Ich habe das nur als Tipp gegeben , da dieses Problem häufiger auftritt .

    Geweckt habe ich ihn ja jetzt schon einmal 😉

    Meine Hardware

    iDX6011 Pro in Späh ^^

    DXP4800+ 2x8TB WDRedPl Btrfs Raid1 2x 2TB Lexar NM790 Raid1, 64GB RAM Kingst. KVR48S40BD8-32 DDR5/4800MH

    DXP2800 1x 12TB Seag. 1x 12TB WDRedPl, Raid1 Btrfs 16GB RAM Cruc. CT16G56C46S5.C8B2, 2x NVME Samsg,

    DS1525+ 2x8TB WD, Btrfs SHR, 2x 2TB NVME Lexar NM790 Raid1. 40GB ECC RAM_Speicher.de

    DS920+ DSM 7.3.2 Btrfs Raid1 2x8TB WD, 2x2TB Samsg. 970 EVOPlus, RAM 20GB DDR4-2666MHZ Speicher.de

    USV US3000, EatonEllip.PRO 850DIN, Switch Zyxel GS1200-8 1GB, Zyxel XMG-108 8 x 2,5GB

  • Also ich hatte das Macvlan neu aufgesetzt (mit IPv6), danach nginx eine IPv6 Adresse und meinem Testserver (searxng) auch eine IPv6 Adresse gegeben. Konnte ich alles anpingen. Aber sobald ich die Domain aufrufe, lande ich wieder bei der Fritzbox.

    Erst das Deaktivieren von IPv6 in der Fritzbox hilft (Fallback auf IPv4).

    eineb Genau das tritt häufiger auf, daher bin ich auf IPv6 als mögliches Problem gestossen. Wenn ich genug Infos gesammelt habe, werde ich wohl einen allgemeinen Post machen, um das Problem und die mögliche Lösung zu beschreiben. Dann hilft das auch anderen, die das gleiche Problem haben. Aktuell ist diese Information ja ziemlich verstreut.

    Super wäre es ja, wenn man das irgendwie beheben könnte, d.h. IPv6 nicht mehr abschalten müsste.

  • igomyway versuch‘s mal mit dem Stack, wenn du kein MacVLAN hast

    UGREEN DXP2800 | UGOS 1.16.0.0089 - 16GB RAM - 2x Lexar NM790 1TB Btrfs RAID1 - 2x Seagate IronWolf 4TB Btrfs RAID1
    Raspberry Pi 4B/4 | DietPi 10.4.2 (Debian Trixie) - 1x WD Red SA500
     MacBook Air M4 | macOS 26.5.1 |  mobile devices only | FRITZ!Box 7690 (OS 8.22) | Eaton Ellipse ECO 650 DIN USB USV

  • Dann nimm das, nur mvl und IP anpassen

    UGREEN DXP2800 | UGOS 1.16.0.0089 - 16GB RAM - 2x Lexar NM790 1TB Btrfs RAID1 - 2x Seagate IronWolf 4TB Btrfs RAID1
    Raspberry Pi 4B/4 | DietPi 10.4.2 (Debian Trixie) - 1x WD Red SA500
     MacBook Air M4 | macOS 26.5.1 |  mobile devices only | FRITZ!Box 7690 (OS 8.22) | Eaton Ellipse ECO 650 DIN USB USV

  • *kw*, das hast Du davon :whistling:, nebenbei läuft „findet Nemo“ :D und ich habe mich an Nginx herangetraut. Mit den Änderungen passend zu meinem MacVlan usw., bin ich gerade auf der Startseite von Nginx angekommen. Anmeldedaten rein und gleich geändert mit allem Pipapo :) und erstmal hab ich das fertig. Nun wird in Ruhe der nächste Schritt folgen, will nicht wieder irgendwas zerklumpen.

    Jetzt zu DuckDNS und ’ne Domain „besorgen“?

  • das ist es dann erstmal gewesen :cursing:

    ich fülle im driten Bild aus wie beschrieben und folgendes erscheint <X

    Code
    CommandError: Saving debug log to /tmp/letsencrypt-log/letsencrypt.log
    Error parsing credentials configuration '/etc/letsencrypt/credentials/credentials-8': Invalid line ('597d845a-39ee-4842-b5a1-7e990879d3ec') (matched as neither section nor keyword) at line 1.
    Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /tmp/letsencrypt-log/letsencrypt.log or re-run Certbot with -v for more details.
    
        at /app/lib/utils.js:16:13
        at ChildProcess.exithandler (node:child_process:430:5)
        at ChildProcess.emit (node:events:524:28)
        at maybeClose (node:internal/child_process:1104:16)
        at ChildProcess._handle.onexit (node:internal/child_process:304:5)

    ich ahne es schon, ich sperre mich wieder aus und muss alles neu aufsetzen X/

  • Irgendwas ist bei vielen die nginx nutzen bis es läuft.

    Zeig mir mal bitte Screenshots vom npm, nur das wo DU einträge hast. bitte nur das notwendigste schwärzen

    Meine Hardware

    iDX6011 Pro in Späh ^^

    DXP4800+ 2x8TB WDRedPl Btrfs Raid1 2x 2TB Lexar NM790 Raid1, 64GB RAM Kingst. KVR48S40BD8-32 DDR5/4800MH

    DXP2800 1x 12TB Seag. 1x 12TB WDRedPl, Raid1 Btrfs 16GB RAM Cruc. CT16G56C46S5.C8B2, 2x NVME Samsg,

    DS1525+ 2x8TB WD, Btrfs SHR, 2x 2TB NVME Lexar NM790 Raid1. 40GB ECC RAM_Speicher.de

    DS920+ DSM 7.3.2 Btrfs Raid1 2x8TB WD, 2x2TB Samsg. 970 EVOPlus, RAM 20GB DDR4-2666MHZ Speicher.de

    USV US3000, EatonEllip.PRO 850DIN, Switch Zyxel GS1200-8 1GB, Zyxel XMG-108 8 x 2,5GB

  • This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Die Domain ist ohne :* eingetragen. Habe mir von duckDNS extra nach Erstellen dieser per Shutter ein Bildschirmfoto erstellt. Den Token herauskopiert und in LibreOffice reinkopiert.

    Was wird noch benötigt? Screen von duckDNS?

  • Ich hätte gern noch die SSL seite gesehen.

    Meine Hardware

    iDX6011 Pro in Späh ^^

    DXP4800+ 2x8TB WDRedPl Btrfs Raid1 2x 2TB Lexar NM790 Raid1, 64GB RAM Kingst. KVR48S40BD8-32 DDR5/4800MH

    DXP2800 1x 12TB Seag. 1x 12TB WDRedPl, Raid1 Btrfs 16GB RAM Cruc. CT16G56C46S5.C8B2, 2x NVME Samsg,

    DS1525+ 2x8TB WD, Btrfs SHR, 2x 2TB NVME Lexar NM790 Raid1. 40GB ECC RAM_Speicher.de

    DS920+ DSM 7.3.2 Btrfs Raid1 2x8TB WD, 2x2TB Samsg. 970 EVOPlus, RAM 20GB DDR4-2666MHZ Speicher.de

    USV US3000, EatonEllip.PRO 850DIN, Switch Zyxel GS1200-8 1GB, Zyxel XMG-108 8 x 2,5GB

  • This image is exclusive to our members!
    Please log in or register for free to view graphics and attachments.

    Ich such’ und lese ja auch weiter. In der Fritz 7590 den Port 80 über Portfreigabe freigeben? 8|


    1. Gehe auf deine FritzBox (z. B. http://fritz.box)
    2. Menü:
      Internet → Freigaben → Portfreigaben
    3. Stelle sicher, dass folgende Regeln existieren:
    ProtokollPort externPort internIP NASBeschreibung
    TCP8080z. B. 192.168.178.50nginx-http oder NPM
    TCP443443z. B. 192.168.178.50nginx-https oder NPM

    beispiel

Participate now!

Join our community with over 10,000 members!

Register yourself now for free to get full access to all content, graphics, downloads and other exclusive features!