Best Practise: Webhosting Domains/Subdomains + Let's encrypt mit vServer Docker services

  • Moin zusammen,

    ich habe mir vor ein paar Tagen meinen ersten vServer (pico winzig) zum Einstieg und Herumspielen gegönnt.

    Inzwischen läuft dort ein erster Docker Dienst (pingvin filesharing), der auf port 3000 läuft, aber leider noch nur "http".

    Da die vServer per default unter v876347834754537645837654.powersrv.de (nur Beispiel) erreichbar sind, was ziemlich schlecht zu merken ist, dachte ich ich nehme eine neuen Domain aus meinem Webhosting Paket. In einem Thread hatte ich etwas davon gelesen, dass ich unter Domains / DNS die A und AAAA records für @ und * auf die IP4 und IP6 des vServers umstellen muss. Nach diversen Wartestunden ist der Server nun unter der neuen Domain auch erreichbar. Ich kann also pingvin unter http://meineneuedomain.de:3000 erreichen. Aber eben noch ohne https://, obwohl ich Let's Encrypt auf dem Webhosting aktiviert habe.

    Hier fangen die Fragen wo was zu tun ist an.

    Mein Wunsch wäre zu der Domain "meineneuedomain.de" zu den Diensten eine subdomain zu haben. z. B. "pingvin.meineneuedomain.de" und das mit LE und https.

    Thema 1:

    * wo definiere / registriere ich die Domain und die Subdomains?

    * Webhosting nur DNS Eintrag für Hauptdomain und Rest im vServer oder komplett im Webhosting Paket?

    * Wie sähen dann DNS Einträge aus?

    * Oder muss das komplett selbst im vServer gemanaged werden? Ich hatte mal was von Trafik als Loadbalancer gelesen...

    Thema 2 - je nach Lösung aus 1:

    * wie bekomme ich das LE Zertifikat dann zu der Domain und den Subdomains installiert?

    * gemanaged im Webhosting oder self managed im vServer mit einem cron Job um LE Zertifikate per Skript selbst upzudaten...?

    Thema 3 - keine Portangabe mehr:

    * Endausbaustufe statt http://meineneuedomain.de:3000 für z. B. "pingvin" im Docker

    -> https

    -> mit subdomain

    -> ohne Portangabe

    -->> https://pingvin.meineneuedomain.de

    -- der vServer weiß dann anhand der Subdomain, dass er intern auf Port 3000 routen muss.

    Wie erwähnt, habe ich schon einige Erfahrung mit Webhosting, aber noch nicht mit vServern. Ja, den ein oder anderen docker container habe ich zu Hause auf meinem Raspi am Laufen aber "draussen" kommen jetzt eben Domains, LE, Routing dazu. Da weiß ich nicht, was best practise ist und in welche Richtung ich mal weiter suchen könnte und was es speziell hier bei netcup zu beachten gibt.

    Frue mich auf eure Tipps/Links/Leseanregungen.

    Besten Dank schonmal

    Peter

  • Hallo,

    neben dem hier üblichen Hinweis, das man zum spielen/probieren keinen Server ins öffentliche Internet bringen sollte, bzw. sich der rechtlichen Konsequenzen im Klaren sein sollte Versuche ich mal ein wenig Starthilfe zu geben.

    Thema 1 im CCP unter den DNS Einstellungen deiner Domain einfach einen zusätzliche A/AAAA Record für die gewünschte Subdomain (pingvin) anlegen.

    Thema 2 nein nicht übers Webhosting, du musst auf deinem Server einen acme-Client installieren oder einen Reverse Proxy wie Caddy, NGINX oder Traefik benutzen, diese haben teilweise direkt einen LE/ACME Client integriert und übernehmen die Zertifikaterstellung.

    Thema 3 kannst du mit Thema 2 abhandeln, der Reverse Proxy hört auf 80/443 und leitet Anfragen an pingvin an deinen Service weiter.

  • Geh direkt zu Thema 3 und erledige so den Rest gleich mit: Reverse Proxy terminiert TLS und sorgt für die Portumleitung. Leider gibt es für HTTP(S) bisher keine Möglichkeit, den Port im DNS zu hinterlegen, weil sich die Webbrowserhersteller weigern. Du brauchst also sowieso zwingend einen Reverse Proxy, wenn du mehr als nur eine einzige Domain auf dem Standardport haben möchtest und diese nicht vom selben Programm bereitgestellt werden.

    Das Zertifikat, das du im Webhosting hast, nützt dir auf dem Server nichts (und so, wie du DNS konfiguriert hast, wird sich das auch nicht mehr automatisch verlängern können). Dein Server muss selbst die Zertifikate besorgen. Wenn du viele Subdomains nutzen möchtest und einen Reverse Proxy verwendest, bietet sich dafür ein Wildcard-Zertifikat an, das du mit der DNS-01 Challenge bekommen kannst.

  • Danke Euch beiden, dann lese ich mich im Thema reverse proxy mal ein.

    Gibt es eine Präferenz für einen der oben erwähnten Proxies (Caddy, NGINX, Traefik) bzgl. Einfachheit?

    Bzgl. Punkt 1) die Subdomain brauche ich dann vermtlich im Webhosting gar nicht erst anzulegen, sondern es reicht einen DNS record anzulegen, richtig?

    Und was in der Domain beim Webhosting als document root etc. eingetragen ist, ist vermutlich egal, da der DNS record zuerst kommt und das Webhosting somit gar nicht erreicht. Derzeit habe ich dort 301 - permanente Weiterleitung zum vServer.

    Und Spiel Server ist vermutlich blöd ausgedrückt. Soll natürlich nur legales Zeug drauf und für Sicherheit sorge ich (hoffentlich vollständig) auch.

    Danke nochmal :)

    Peter

  • Ja, wenn du @ und * auf den Vserver zeigen lässt, ist das Webhosting bis auf Mail raus aus der Sache. Wegen den Wildcard-DNS-Records brauchst du einzelne Subdomain-A/AAAA-Records auch nur anzulegen, wenn die nicht auf dem VPS ankommen sollen.

    Einmal editiert, zuletzt von NaN (29. Dezember 2024 um 15:57)

  • Zu nginx würde ich Nginx Proxy Manager in den Ring werfen. Habe ich selbst zwar nur kurz ausprobiert, scheint aber sehr beliebt zu sein und mit GUI auch relativ einfach zu bedienen.

    Historisch komme ich eher vom Apache, verwende derzeit aber - gerade für kleinere Projekte - hauptsächlich Caddy.

    Mir gefällt das Konzept, dass der Server (in Go geschrieben) auch mit einem binary und einem config File sauber läuft - mit Container oder auch ohne.

    VPS 1000 G11 | RS X-Mas 2016 🎄 | VPS A Ostern 2017 🐰 | VPS [piko|nano|mikro] G11s | RS Cyber Quack 🦆 | WH Expert Special 2018 / 4000

  • Und Spiel Server ist vermutlich blöd ausgedrückt. Soll natürlich nur legales Zeug drauf und für Sicherheit sorge ich (hoffentlich vollständig) auch.

    Danke nochmal :)

    Peter

    Das was damit effektiv gemeint ist, ist dass man sich im Klaren sein sollte, dass man sich um die Sicherheit des Systems zu kümmern hat. Das ist, was am Ende des Tages interessiert. Und wenn man sich darum kümmert, passt das auch. Diese reine Lehre übersieht nämlich, dass hier unzählige "Kids" ihre Gameserver und ähnliche Systeme für ihr Taschengeld betreiben, ohne dass die Fragen stellen wie man dies oder jenes macht. ,)

  • Ich danke euch. Ich habe es hinbekommen.

    tl;dr

    Hauptdomain im Webhosting angelegt (ohne subdomain)

    Dort im DNS A und AAAA records für @ und * auf den vServer

    Im vServer habe ich jetzt ein docker image für den nginx-proxy-manager installiert und einen Proxy Host für pingvin eingerichtet.

    Tut alles, so wie gewünscht und mit dem nginx-proxy-manager für Einsteiger mit vorerst wenig "Fummelbedarf" gut geeignet.

    Also Danke nochmal :))