Docker + Nginx + Let's Encrypt Konfiguration

  • Sorry, aber das ist doch grober Unfug. Fährst du Auto, ohne einen Führerschein gemacht zu haben? Bastelst du ohne entsprechende Ausbildung an deiner Elektroinstallation zu Hause rum? Nein. Und kein Mensch würde auf die Idee kommen. Aber einen komplexen Server am Netz betreiben kann jedes Schulkind?

    Komm jetzt nicht mit: "Aber Autofahren ist gefährlich, ein Server nicht." Falsch! Ein kompromittierter Server kann massiv Schaden anrichten, nicht nur für einen selber, sondern auch für andere Betroffene. Schadensersatzforderungen im 5- oder 6-stelligen Bereich sind möglich.

    Natürlich darf man als Anfänger Fragen stellen. Aber es kommt immer auf den Kontext an. Bei Experimenten am lebenden Objekt muss man sich solche Hinweise gefallen lassen, denn es ist grob fahrlässig. Würde aus dem Kontext heraus klar werden, dass der Fragesteller zu Hause auf einer VM testet, um sich mit der Technik vertraut zu machen, dann würden die Antworten anders ausfallen.

    Ich sehe das genauso, nur respektvoll gemeint.

    [RS] 2000 G11 | 3x 1000 G12 Pro | 2x Vincent van Bot | Piccolo | Piccolo ARMore
    [VPS] 1000 G9 | 500 G11s | mikro G11s | 4x nano G11s | 4x piko G11s
    [WH] 8000 SE | 4000 SE | 2000 SE | 2x Spezial

  • Ich möchte mich hier mal ein wenig auf die Seite des TE schlagen.

    Sicher könnte es sein, dass er keine Ahnung von Serveradministration hat, aber ich sehe dafür hier keine zwingenden Indizien,

    Er hat halt evtl. einfach noch wenige Erfahrung mit docker.

    Als ich das erste Mal intensiver mit docker angefangen habe, hatte ich ähnliche Probleme und ich konnte durchaus einen Server zuverlässig administrieren und absichern.

    Und nginx mit cert im container ist duchaus nicht so total trivial. Da kann man schon mal stolpern. ("Huhn-Ei"-Problem: nginx-Konfig braucht cert um zu funktionieren, aber cert kann nicht estellt werden, weil nginx nicht funktioniert, wegen fehlendem cert. ^^ )

    Ich empfehle hier, wie gesagt bottom-top:
    https://forum.netcup.de/administration…ion/#post226365

    Anleitungen im Netz sollte man dabei nicht blind übernehmen, sondern sie erstmal analysieren und recherchieren wie sie denn nun eigentlich funktionieren.

    Wenn es dann funktioniert, weiß man wenigstens auch warum und hat was dabei gelernt.

  • Sicher könnte es sein, dass er keine Ahnung von Serveradministration hat, aber ich sehe dafür hier keine zwingenden Indizien,

    Na ja, ... Conflig Files noch im Auslieferzustand, bei der Frage nach der Erreichbarkeit des Containers auf IP Ebene kommt aus Aussage, was im Browser passiert bzw. dass der Server erreichbar sei (ohne Hinweis, was überhaupt überprüft wurde), ...

    Ich sage mal so: Jemand der Erfahrung mit der Administration eines Servers besitzt und schon mal Routing und Firewall eingerichtet hat, der reagiert anders auf solche Fragen. Da würden sysctl settings, IP-Konfigurationen, nslookup Ergebnisse, netstats, Firewall-Regeln und das Ergebnis von Traces in der Antwort stehen, aber nicht "Im Browser steht abgelehnt".

    Wie gesagt, das ist kein Vorwurf. Wir können auch gern hier im Forum durch alle Einzel-Schritte gehen. Aber er sollte sich darüber im Klaren sein, dass er da gerade ein hohes Risiko eingeht, und wenn man ihn darauf aufmerksam macht, zumindest nicht pampig werden und uns vorwerfen, dass wir keine Lösung hätten.

  • So, sorry das ich erst heute Antworte, war bzw. bin immer noch krank.

    Aber, ich habe mich heute nochmal dran gesetzt, alles neu installiert, und es läuft jetzt, auch mit Zertifikat.

    Wer sich den Bullshit mit Docker + nginx + LE Zertifikat mal ansehen will, kann sich die Links von cltrmx aus Beitrag 12 mal ansehen.

    So trivial ist es nicht, wie einige hier meinten. Vor allem nicht, wenn man vorher keine Erfahrung hatte mit Docker. Das hat auch nichts "keine Ahnung von der Materie" zu tun, so wie es einige mir unterstellt haben.

    Naja, wie auch immer, es läuft, damit ist das Thema hier erledigt für mich.

  • Nö, ich möchte dann bei denen sagen können "wenn man keine Ahnung hat sollte man keinen Server ins Internet stellen". ;)

    Aber, die Anleitungen aus Beitrag 12 helfen, und außerdem glaube ich nicht dass hier jemand selbst Relution installiert.

    EDIT:

    Welche Konfig Datei meinst du eigentlich?

    Und was ich ehrlich gesagt vergessen habe vorher einzustellen: Bei einem LE Zertifikat sollte die komplette Domain auf die IP zeigen, nicht nur die Subdomain. LE spinnt sonst rum.

  • So fein und performant nginx auch ist, so isses auch nicht unbedingt die einstiegsfreundlichste Lösung für einen TLS Setup mit Let's Encrypt oder ZeroSSL.

    Falls Du, so wie ich, sehr faul bist, dann kannst Du auch mal einen Blick auf Caddy werfen. Das gibts natürlich auch als Docker Container.

    Zur Konfiguration mußt Du dann noch ein CaddyFile erstellen.

    Das kann beispielsweise so aussehen:

    So Sachen wie die Email Adresse und den Hostnamen, sowie Containernamen mußt Du sinngemäß ersetzen. Das ist aber auch schon tatsächlich alles was Du brauchst.

    Um die Erstellung und Erneuerung von Zertifikaten kümmert sich Caddy ganz von alleine.

    Gutes Gelingen! (Egal für welchen Reverse Proxy Du Dich entscheidest!)

    Einmal editiert, zuletzt von MacLemon (16. Juli 2024 um 21:08) aus folgendem Grund: Fipptehler

  • MacLemon

    Ja stimmt, Caddy gibt es ja auch noch. Nicht mehr dran gedacht, aber ich bin auch nicht mehr so in den Themen drin wie früher (daher auch keine Kenntisse bezüglich Docker usw.).

    Das Problem ist glaub ich die Software selbst, also Relution. Gibt wahrscheinlich einen Grund warum die selbst keine Anleitung schreiben wie das geht mit dem Zertifikat. Gibt da nur 3 Sätze welche Stellen man ersetzen muss wenn man ein anderes/gekauftes Zertifikat hat.

    Als ich bei denen nachgefragt habe, wollten die, dass ich zuerst das Supportbudget auflade zu je 950,-€ pro 8 Std.

    Ich habe demnächst Urlaub, dann probiere ich das mal und erstelle den Mist mit Caddy anstatt nginx.

  • Und was ich ehrlich gesagt vergessen habe vorher einzustellen: Bei einem LE Zertifikat sollte die komplette Domain auf die IP zeigen, nicht nur die Subdomain. LE spinnt sonst rum.

    Was meinst du genau damit? Da stehe ich gerade auf dem Schlauch - normalerweise funktioniert es absolut ohne Probleme Subdomains auf andere Hosts zeigen zu lassen als die Hauptdomain und für beides unabhängig voneinander LE zu konfigurieren.

  • Das dachte ich bisher auch, da ich es auch schon so gemacht habe. Deswegen habe ich da auch gar nicht drauf geachtet.

    Was ich mir nur vorstellen kann, ist, dass es die ganze Zeit klappte, aber die Anwendung ansich die Verbindung nicht zugelassen hat, weil die Hauptdomain auf eine andere IP zeigte als die Subdomain wo die Anwendung drauf läuft.

    Relution ist ein MDM, wahrscheinlich muss da alles zusammen passen. Sicher bin ich mir nicht, habe aber auch keine Lust mehr das zu recherchieren, hauptsache es läuft jetzt.

    Irgendwo habe ich aber in Bezug zu LE das gelesen dass es von LE gefordert wird. Muss nochmal suchen wo das war. :/

  • Bei einem LE Zertifikat sollte die komplette Domain auf die IP zeigen, nicht nur die Subdomain. LE spinnt sonst rum.

    Nö. Man kann domain und subdomains auf beliebig unterschiedliche ips/Server zeigen lassen und für alle problemlos certs erstellen.

    Natürlich muss man das cert immer dort beantragen, wo auch die DNS hinzeigt.

  • Ich habe solch ein Konstrukt mit mehreren nginx und Docker Containern mit Traefik umgesetzt, hier kann man dann auch sehr einfach mehrere (Sub)Domains konfigurieren, alle bekommen automatisch LE Zertifikate und um die Erneuerung muss man sich auch nicht kümmern. Traefik selbst läuft in einem eigenen Container. Es müssen dann nur noch die einzelnen Compose-Dateien angepasst werden.

    https://doc.traefik.io/traefik/

    Grüße aus der Signatur

    2 Mal editiert, zuletzt von a-tom (18. Juli 2024 um 08:57)