Zum Inhalt

ACME Wildcard-Zertifikate fuer *.ad.lanstyle.de

Stand: 2026-06-07

Diese Seite beschreibt den Betrieb des internen Wildcard-Zertifikats fuer ad.lanstyle.de und *.ad.lanstyle.de. Das Zertifikat wird automatisch per ACME DNS-01 ueber IPv64 erneuert und kontrolliert auf ausgewaehlte Serverdienste verteilt.

Keine Secrets im Wiki

API-Keys, ACME-Accountdaten und private Keys werden hier nicht dokumentiert. Der IPv64 Account-API-Key liegt in Vaultwarden. Auf dem Certmgr liegt er nur root-readable unter /etc/certmgr/ipv64.env.

Architektur

Komponente Wert
Certmgr LXC 112
DNS certmgr.ad.lanstyle.de
IP 10.222.40.51/24
VLAN 40 Server-Core
ACME Client lego 4.24.0
ACME Challenge DNS-01
DNS Provider IPv64 Account API
Zertifikat ad.lanstyle.de, *.ad.lanstyle.de
Zertifikatspfad /etc/lego/production/certificates/ad.lanstyle.de.crt
Keypfad /etc/lego/production/certificates/ad.lanstyle.de.key
Alert-Mail m.eberhardt@lanstyle.de

Die urspruenglich geplante IP 10.222.40.39 wurde nicht verwendet, weil sie bereits durch ConvertX belegt ist.

Warum ein eigener IPv64-Hook?

Der native lego Provider ipv64 wurde getestet, erzeugte bei dieser Subdomain-Struktur aber TXT-Records unter _acme-challenge.lanstyle.de statt exakt unter _acme-challenge.ad.lanstyle.de. Deshalb nutzt der Certmgr den lego Provider exec mit einem eigenen Hook:

Datei Zweck
/opt/certmgr/ipv64-dns-hook.sh setzt/loescht ausschliesslich TXT fuer _acme-challenge.ad.lanstyle.de
/opt/certmgr/certmgr-renew.sh Staging-/Production-Issue und Renewal
/opt/certmgr/deploy-all.sh lokaler Deploy-Hook, aktuell bewusst ohne breite Zielaktivierung
/opt/certmgr/alert.sh SMTP-Alarmierung

Der Hook verweigert alle Prefixe ausser _acme-challenge.ad. Andere DNS-Records werden nicht geaendert.

Renewal

Timer Ort Zweck
certmgr-renew.timer CT 112 taeglicher Renewal-Check gegen Let's Encrypt
certmgr-deploy-netbox.timer Proxmox Host Pull des Zertifikats aus CT 112 und Deploy nach NetBox
certmgr-deploy-start-pbs.timer Proxmox Host Pull des Zertifikats aus CT 112 und Deploy nach Startseite/PBS

Der Mailversand fuer Alerts laeuft ueber das SMTP Relay 10.222.40.25. Der FQDN bleibt smtp.ad.lanstyle.de; im Certmgr ist fuer msmtp bewusst die feste IP gesetzt, weil die lokale DNS-Suche im Test nicht zuverlaessig genutzt wurde.

Aktiv verteilte Ziele

Ziel Status Zertifikat/Key Reload
NetBox CT 309 aktiv /etc/ssl/certs/netbox.crt, /etc/ssl/private/netbox.key systemctl reload apache2
Startseite CT 127 aktiv /etc/ssl/certs/ad.lanstyle.de.crt, /etc/ssl/private/ad.lanstyle.de.key systemctl reload nginx
PBS CT 111 TLS aktiv, HTTP-Test noch 400 /etc/proxmox-backup/proxy.pem, /etc/proxmox-backup/proxy.key systemctl restart proxmox-backup-proxy

Wichtige Tests

# Certmgr Status
pct exec 112 -- systemctl is-active certmgr-renew.timer
pct exec 112 -- openssl x509 -checkend 1814400 -noout \
  -in /etc/lego/production/certificates/ad.lanstyle.de.crt

# Zertifikat anzeigen
pct exec 112 -- openssl x509 \
  -in /etc/lego/production/certificates/ad.lanstyle.de.crt \
  -noout -subject -issuer -dates -ext subjectAltName

# Startseite
curl -I https://start.ad.lanstyle.de/

# NetBox
curl -I https://netbox.ad.lanstyle.de/

# PBS TLS/SNI
openssl s_client -connect 10.222.30.33:8007 -servername pbs.ad.lanstyle.de </dev/null \
  | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

Erwartung:

  • SAN enthaelt DNS:*.ad.lanstyle.de und DNS:ad.lanstyle.de.
  • certmgr-renew.timer ist aktiv.
  • Startseite liefert HTTP 200.
  • NetBox liefert HTTP 302 zur Login-Seite.
  • PBS liefert das Wildcard-Zertifikat; der HTTP-Status 400 ist separat zu klaeren.

Rollback

NetBox

  1. Backup aus /root/codex-backups/certmgr-netbox-* zurueckkopieren.
  2. apache2ctl configtest
  3. systemctl reload apache2
  4. curl -I https://netbox.ad.lanstyle.de/

Startseite

  1. Backup aus /root/codex-backups/certmgr-start-auto-* oder /root/codex-backups/wildcard-start-pbs-* zurueckkopieren.
  2. nginx -t
  3. systemctl reload nginx
  4. curl -I https://start.ad.lanstyle.de/

PBS

  1. Backup aus /root/codex-backups/certmgr-pbs-auto-* oder /root/codex-backups/wildcard-pbs-retry-* zurueckkopieren.
  2. Rechte pruefen:
chown root:backup /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key
chmod 0644 /etc/proxmox-backup/proxy.pem
chmod 0640 /etc/proxmox-backup/proxy.key
systemctl restart proxmox-backup-proxy
  1. systemctl is-active proxmox-backup-proxy

Startseiten-Dienste und HTTPS

Viele Startseiten-Links sind Public-FQDNs hinter NPM und haben bereits gueltige Zertifikate fuer ihre jeweilige Domain. Interne HTTP-Direktlinks wie radarr.ad.lanstyle.de:7878, sabnzbd.ad.lanstyle.de:7777, paperless-*.ad.lanstyle.de:8000, prometheus.ad.lanstyle.de:9090 oder unpoller.ad.lanstyle.de:9130 duerfen nicht pauschal per DNS auf NPM geschwenkt werden, weil diese Namen auch fuer App-zu-App-API-Zugriffe mit festen Ports genutzt werden.

Sichere Folgestrategie:

  1. bestehende App-FQDNs unveraendert lassen;
  2. separate Web-Aliase wie radarr-web.ad.lanstyle.de, sabnzbd-web.ad.lanstyle.de oder prometheus-web.ad.lanstyle.de auf NPM zeigen lassen;
  3. NPM nutzt das Wildcard-Zertifikat fuer diese Web-Aliase;
  4. Startseite wird danach auf die *-web.ad.lanstyle.de HTTPS-Ziele umgestellt.

Damit werden Browserzugriffe TLS-sauber, ohne interne API-/Port-Abhaengigkeiten zu brechen.

Bewusst nicht automatisch verteilen

Nicht mit diesem Wildcard-Zertifikat ausruesten:

  • LANDC1/LANDC2 fuer LDAPS/Kerberos;
  • Radius RadSec-Zertifikat;
  • Drucker, Kameras, Hue, Wallboxen, Shelly, ETA, KNX, Sonos;
  • beliebige IoT-/Appliance-Geraete ohne sicheren Key-Rollout.

Grund: Der Wildcard-Private-Key schuetzt alle *.ad.lanstyle.de-Namen. Je breiter er auf schwer wartbare Endgeraete verteilt wird, desto groesser ist das Kompromittierungsrisiko.

Betriebshinweise

  • Keine Secrets in Git, Markdown oder Wiki.
  • Keine anderen IPv64-DNS-Records anfassen.
  • DNS-Rollback betrifft nur _acme-challenge.ad.lanstyle.de TXT-Records.
  • Neue Deploy-Ziele immer einzeln mit Backup, Configtest, Reload und HTTPS-Test aktivieren.