NGINX Revers Proxy im Homelab um HTTPS ohne Warnung nutzen zu können.

  • Moin,

    jetzt bin ich genug genervt und kümmere mich mal drum, dass ich all meine lokalen services ohne die nervige Warnung Zertifkat nicht gültig (self signed) WARNUNG wollen so weitermachen nutzen kann.

    Dazu braucht es

    • Einen DNS server der per API DNS Challenge nutzbar ist - ich nutze Cloudflare man kann aber auch seinen IONOS service oder duckdns oder andere nutzen.
    • NGINX-Proxy welches Letsencrypt mitbringt

    Das ganze lassen wir auf eine Ubuntu 24 VM mit docker laufen. Dazu die hier notwendigen Schritte

    1. Ubuntu 24 server minimal mit SSH service installieren (das beschreibe ich nicht
    2. Docker runtime installieren: https://docs.docker.com/engine/install/ubuntu/ (ich nutze die Methode mit apt repo)
    3. nginx proxy installieren (https://nginxproxymanager.com/guide/#quick-setup), sprich docker.compose.yml erzeugen und mit docker compose pull laden und dann mit docker compose up -d starten. Kann man auch mit nur up -d machen, aber ich lade die Images gerne erstaml getrennt um zu sehen ob das klappt.

    zum Check docker ps -a aufrufen und Ihr solltet so etwas wie

    root@lx-nginxproxy:~# docker ps -a
    CONTAINER ID   IMAGE                             COMMAND    CREATED          STATUS                     PORTS                                                                                  NAMES
    b141124c8bd4   jc21/nginx-proxy-manager:latest   "/init"    13 seconds ago   Up 13 seconds              0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   root-app-1

    bekommen. Sieht gut aus, wenn man nun die IPadresse:81 aufruft kommt

    Supi NGINX läuft. Der default admin sollte Email: [email protected] Password: changeme sein. Damit logged Ihr Euch ein und ändert erstaml den admin. Danach solltet Ohr folgendes sehen:

    natürlich mit Euren Daten.

    Nun könnte Ihr Euer erstes Zertifkat erstellen

    nimmt *.Euredomäne und bei Cloudflare das API TOKEN eingeben (nicht zone id oder ähnliches). 120s für propagation sollte OK sein.

    währen Letsecrypt arebeitet seht Ihr auf Cloudflare den entsprechenden Prüfeintrag um zu checken ob die Domain wirklich Euch gehört.

    Der verschwindet nach 2 minuten automatisch wieder. Ist alles gut gelaufen habt Ihr folgendes

    natürlich mit Eurer Domaine. Nun könnt Ihr anfangen Eure hosts / services eintragen.

    Ach ja damit dass ganze funktioniert muss nat. im DNS server der nginx proxy als IP für die subdomain eingetragen sein und zusätzlich alle hosts drunter (*) müssen auf den proxy zeigen. So werden dann alle entsprechenden requests an nginx gesendet und der sendet dann weiter an die richtige IP.

    Fall Ihr einen eigenen DNS server nutzt der evt. wieder aus dem Netz die DNS Daten holt müsste Ihr evtl. rebind für Euer netz erlauben.

    Quote

    These are addresses on your private network, and are not allowed to be returned for public internet names. Any occurrence of such addresses are removed from DNS answers. Additionally, the DNSSEC validator may mark the answers bogus. This protects against so-called DNS Rebinding. (Only applicable when DNS rebind check is enabled in System->Settings->Administration)

    Das obige wurde angeregt durch diese beiden Videos

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!