LetsEncrypt at Home

Crumar

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.057
Hio,

ich habe einen vServer, auf dem ein paar Dienste für mich laufen mit Apache als Webserver. Dort nutze ich den Certbot, um automatisch SSL Zertifikate zu erneuern und alle Websites mit SSL abzusichern. Für diesen Server habe ich 2 Domains.
Unter anderem läuft hier auch ein DynDNS für mich, so dass ich den jeweiligen Router (meiner, u. a. der Familie) von außen erreichen kann.

Zuhause habe ich auch einige Dienste laufen, u.a. ProxMox und diverse Configuration Portale, Home Assistant, etc.
Die möchte ich jetzt gerne alle mit einem LetsEncrypt Zertifikat ausstatten, da ich keine Lust habe Self-Signed Certificate zu installieren.
Wie geht ihr da vor?

Ich könnt ein Wildcard Zertifikat ausstellen (auf dem vServer) und per SSH von intern abholen/verteilen. Dann haben aber alle Maschinen Zugriff auf das gleiche Wildcard Zertifikat.
Theoretisch müsste ich ja auch eine Portweiterleitung an einen lokalen Server gehen, der die Zertifikate einzeln generiert. Dann müsste ich nur alle Subdomains als CNAME auf den Router freigeben?

Wie macht ihr das?
 
ich hatte früher ein Wildcard Zertifikat. das lag, zentral, auf dem nginx Server. Die zwei/drei Dienste/Geräte, die nicht über den Nginx liefen, denen habe ich es manuell drauf kopiert.

was spricht dagegen das gleiche Wildcardzertifikat für mehrere Geräte zu verwenden? Dafür ist es doch gedacht, oder? Du kannst natürlich Wildcard-Zertifikate kaufen, aber LetsEncrypt gibt dir kein neues, bis das alte 30 Tage vor Ablauf steht, oder so.

Portweiterleitung? Wozu die?

Du könntest, wenn du das Zertifikat nicht kopieren willst, auf deinem vServer ebenfalls ein Nginx Reverse Proxy laufen lassen. Dieser würde dann deine lokale Seite per HTTP aufrufen und als HTTPS mit Wildcard weitergeben. Dafür braucht der vServer natürlich Zugriff auf dein lokales Netz (per VPN; eine Portweiterleitung über den Router auf den lokalen Dienst macht man nicht!)
 
Ich habe eine subdomain im heimnetz für die dort auch ein dns server authorativ ist. Also home.xxxx.de
Dann könntest du theoretisch mit letsencrypt ein wildcard auf *.home.xxx.de ausstellen, wenn du beim internet facing dns server diese subdomain auch auf deinen vServer lenkst.

Das macht halt dns abfragen auf deine home server wie yyy.home.xxx.de aus dem internet kaputt, aber das ist ja meistens eh nicht gewollt (bei mir schon da ich teilweise ipv6 geräte direkt über das internet ansprechen lasse.

Deswegen und nicht zuletzt weil 90% der geräte sowieso ein krampf sind eigene zertifikate einzurichten habe ich dann doch ein eigenes root cert mit 10 Jahres Zertifikaten. Weil alle 2 Monate auf dem obskuren netwerk switch/ap etc. die zertifikate zu tauschen macht keinen spaß.
 
Bei mir werden die Wildcards über die Firewall erstellt und via HAProxy bereitgestellt. Dieser fungiert als Reverse Proxy für alle internen Server. Die Authentifizierung für die Wildcards läuft über Cloudflare (Free)

Für interne Dienste, wo ich kein Wildcard nutze stellt die Firewall die auch aus und pusht die dann via scp auf die jeweiligen Server
 
Wildcard bei LE geht meines Wissens nur per DNS, würde ich aber eh empfehlen anstelle das Cert auf dem Server zu erstellen und dann per SSH abzuholen. acme.sh finde ich sehr angenehem. Damit kannst du per DNS-Challenge die Certs dort holen, wo du sie brauchst oder eben eins mit Wildcard
 
  • Gefällt mir
Reaktionen: Der Lord
Crumar schrieb:
Theoretisch müsste ich ja auch eine Portweiterleitung an einen lokalen Server gehen, der die Zertifikate einzeln generiert. Dann müsste ich nur alle Subdomains als CNAME auf den Router freigeben?
Nutze einfach ein Wildcard-Zertifikat. Dann brauchst du auch keine Portfreigaben oder Abholung per SSH vom vServer, da Wildcard-Zertifikate eh nur per DNS-Challenge zu beantragen sind. Heißt also du benötigst in Form irgendeiner API Zugriff auf deine DNS-Daten; viele Registrare bieten ein solches Feature.
Und wenn es kein Unbekannter ist, ist eine entsprechende Unterstützung in den gängigen acme-Clients bereits eingebaut (Beispiele).
Ein Wildcard-Zertifikat hat auch den Vorteil, dass nicht all deine einzelnen Hostnamen bei Beantragung in der öffentlich einsehbaren Liste, die durchaus automatisiert ausgelesen und genutzt wird, auftauchen - das war mir beispielsweise wichtig.
 
Die meisten internen Dienste laufen bei mir über einen internen Remote-Proxy, welcher sich um die Zertifikate kümmert. So erhält jeder Dienst seine eigenes Zertifikat, welches bei Bedarf aktualisiert wird.

Dienste, welche in Docker laufen werden per Traefik mit Zertifikaten versorgt. Diese Lösung hat den Charme, dass per Docker-Compose jeder Container sein eigenes zertifikat anfordern kann.

Dienste mit mit eigenem LXC werden per Caddy versorgt. Diese Dienste könnten auch per Traefik eingebunden werden, allerdings gefällt mir Caddy noch besser.

In beiden Fällen Let's Encrypt mit DNS-Challenge.

Edit:
Die komplette Lösung läuft so Intern, nur Caddy/Docker müssen mit dem DNS Anbieter reden können.
DNS Anfragen biege ich per openWrt auf die entsprechenden internen IP-Adressen um.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Der Lord
Netcup wäre bei acme sogar enthalten.
Wobei Qowy natürlich auch Recht hat. Für alles, was in Docker oder direkt aufm Host läuft den ich kontrolliere ist es ja kein Problem, aber alle 3 Monate auf Switch / APs einloggen und Zertifikat einspielen wird wohl lästig.
Gäbe es da auch was für die Zyxel Produkte?
AP: NWA-210AX
Switch: GS1910-48HP
 
Für alles, was in Docker läuft benutze ich Traefik als Reverse Proxy, und der kümmert sich auch um alle Zertifikate für die diversen Subdomains.
 
  • Gefällt mir
Reaktionen: madmax2010
Ich nutze https://ddnss.de/ weil die Wildcards erlauben. Ich kann mir also für jeden Dienst einen Domain Namen (also einfach eine Subdomain) ausdenken und die werden alle auf meine DDNS Adresse geschickt. Ich muss dafür also nicht jedesmal das DDNS Portal bemühen. Die Anfragen landen zuhause am Nginx Proxy Manager, ein fertiger Docker Container, der auch die Verwaltung der Zertifikate übernimmt. Den Proxy Manager kann ich absolut empfehlen. Automatisches Cert renew und einfach einzurichtende Hosts + Access Listen um die Zugriffe zu reglementieren. Kinderleicht zu bedienen und wird regelmässig gepflegt.
 
Würde da auch zuhause einfach nen Reverse Proxy wie nginx vor deine diversen Dienste schalten. Auf derselben Maschine dann via certbot und dns-challenge nen wildcard-cert abholen.
 
Zurück
Oben