ACME und Reverse Proxy via Docker

d4nY

Lieutenant
Registriert
Apr. 2009
Beiträge
849
Hallo zusammen,

Ich bin momentan dabei meinen Web-Server von VM auf Docker-Container zu migrieren, bin dabei aber über ein Hindernis gestoßen für das mir momentan keine zufriedenstellende Lösung einfällt. Vielleicht hat ja jemand aus der Community ein ähnliches Problem und eine gute Lösung gefunden :D

Kurz die aktuelle Umgebung:
Ich hab eine Linux-VM auf der ein Apache2 Webserver läuft und teilweise direkte Webservices bereitstellt (bspw. Nextcloud) teilweise aber auch nur Reverse Proxy ist. Zusätzlich laufen über die VM meine LetsEncrypt Challenges via acme.sh (HTTP-01). Die Zertifikate werden dabei auf ein NFS Export gelegt, weil ich die Zertifikate auch auf anderen VMs brauche
Funktioniert soweit tadellos

Jetzt würde ich das Setup gerne auf Docker umziehen, konkret habe ich dabei folgende Anforderungen:
  • Challenge Typ muss HTTP-01 sein (DNS-01 unterstützt mein Anbieter nicht)
  • Zusätzlich zur Challenge brauch ich dann noch den eigentlichen Proxy
  • Ich brauche unbedingt RSA Zertifikate (es dürfen zusätzlich aber auch gerne ECDSA Zertifikate erstellt werden, so ist es bspw. jetzt gerade)
  • Die Zertifikate müssen als PEM irgendwo im Dateisystem abgelegt werden, damit ich die Zertifikate für meine anderen VMs verwenden kann

Das erste worüber ich gestolpert bin war dabei der Nginx Proxy Manager, der das alles FAST komplett macht was ich, mit einer Ausnahme: es werden ausschließlich ECC Zertifikate mit P384 Curve erstellt und damit bin ich auf mein erster Problem gestolpert: Tasmota bzw. der ESP8266 (MQTT over TLS)
Laut Doku kann Tasmota mit dem ESP8266 nur RSA und kein ECC, ein self signed Zertifikat für den MQTT Broker scheidet leider auch aus, weil ich bei den meisten Geräten die damit verbunden sind keine eigene CA hinterlegen kann

Hätte dann versucht beim NPM die config für LetsEncrypt irgendwie anzupassen, bin da aber auch nicht gerade fündig geworden =/

Ich könnte jetzt natürlich auf TLS bei MQTT verzichten...will ich aber nicht wirklich

Vielleicht hat ja jemand von euch eine Idee? Es sollte natürlich auch irgendwie halbwegs administrierbar sein :D
 
d4nY schrieb:
Challenge Typ muss HTTP-01 sein (DNS-01 unterstützt mein Anbieter nicht)
Falls du nix gegen Cloudflare hast, kannst du einfach (kostenlos) deine Domain in Sachen DNS dahin umziehen. Du trägst dabei dann Cloudflare als Nameserver ein. Dann geht auch die DNS-Challenge :)
 
Du könntest Traefik grundsätzlich als Proxy für alle Domains verwenden und mit Traefik-certs-dumper die Zertifikate exportieren.
Traefik kann ich als Proxy für Dockercontainer sehr empfehlen, da man über Labels der anderen Container ziemlich einfach die Zuweisung zwischen Container und Domain machen kann und Traefik die Zertifikate komplett automatisch im Hintergrund aktualisiert.
 
@kamanu unterstützt Cloudflare DynDNS? Ich hoste den Spaß nämlich bei mir zu Hause und brauch deshalb DynDNS :D

@Jules153 und @snaxilian
Danke für die Links, bin auf beides schon mal gestolpert und werd mir das dann auf alle Fälle auch mal näher ansehen
 
Zurück
Oben