Traefik stack is thread-net-git (manual compose deploy on CFGMON). DNS-01 diff is ready (tlschallenge -> dnschallenge/ionos + IONOS_API_KEY via host .env). Two human dependencies remain: create the IONOS API key and deploy+verify on CFGMON (no SSH from here). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
74 lines
3.8 KiB
Markdown
74 lines
3.8 KiB
Markdown
---
|
|
type: issue
|
|
id: "0007"
|
|
status: in-progress
|
|
created: 2026-08-01
|
|
milestone: M1
|
|
priority: high
|
|
due: 2026-09-28
|
|
host: cfgmon
|
|
gitlab_iid: "7"
|
|
related: []
|
|
---
|
|
# CFGMON-01: Zertifikatserneuerung braucht offene Ports — zeitkritisch ab 2026-09-28
|
|
|
|
> Import aus [management#7](https://git.lab/axion1337.chat/management/-/issues/7) (2026-08-11). Kommentare und Verlauf bleiben dort; kanonisch ist ab jetzt diese Datei (ADR-0012).
|
|
|
|
Certs für `selendis`/`rohana` laufen am **2026-10-28** ab; Traefik erneuert ab
|
|
Ende September via TLS-ALPN-01 — braucht **Port 443 offen aus dem ganzen Internet**
|
|
(LE veröffentlicht keine Validierungs-IPs, Multi-Perspective-Validation). Der
|
|
Normalzustand der Umgebung (443 auf eigene IP beschränkt) lässt die Erneuerung
|
|
**still** scheitern → Self-Signed-Default-Cert. IPv6-Pfad ist geprüft frei
|
|
(`::/0` separat in der Hetzner-Firewall-Regel; `0.0.0.0/0` deckt IPv6 NICHT ab) —
|
|
die September-Erneuerung ist aber der **erste** Lauf, der IPv6 überhaupt versucht.
|
|
|
|
**Entscheidung nötig:**
|
|
- **A — Ports offen lassen** bzw. zur Erneuerung öffnen (Kalendereintrag Mitte
|
|
September, nicht aufs Ablaufdatum!)
|
|
- **B — auf DNS-01 umstellen (empfohlen):** TXT-Validierung, kein offener Port,
|
|
ermöglicht Wildcards. Braucht IONOS-API-Token als Traefik-Secret; Voraussetzung
|
|
(versionierter Traefik-Stack) ist seit CFGMON-02 erfüllt.
|
|
|
|
Quelle: [hosts/cfgmon.md](https://git.lab/axion1337.chat/management/-/blob/main/hosts/cfgmon.md)
|
|
|
|
---
|
|
*Übernommen aus dem Backlogs-Markdown beim Framework-Umbau 2026-08-01 (voller Wortlaut: Git-Historie der Datei).*
|
|
|
|
## Plan (2026-08-14) — eingeplant
|
|
|
|
**Weg B (DNS-01)** umsetzen — im Issue bereits als empfohlen markiert: entfernt die
|
|
Port-Fenster-Abhängigkeit komplett (kein offener 443, keine Unsicherheit beim IPv6-Erstlauf)
|
|
und ermöglicht Wildcards; die Voraussetzung (versionierter Traefik-Stack) ist seit CFGMON-02
|
|
erfüllt. Ausführung terminlich **vor Mitte September** (Puffer vor Ablauf 2026-10-28).
|
|
|
|
Schritte (B):
|
|
1. IONOS-API-Token als Traefik-Secret hinterlegen (SOPS-verschlüsselt).
|
|
2. Traefik-ACME-Resolver auf **DNS-01 (IONOS-Provider)** umstellen, committen → ausrollen.
|
|
3. Test-Erneuerung erzwingen; TXT-Record-Setzung + ausgestelltes Cert für `selendis`/`rohana`
|
|
prüfen (kein Self-Signed-Fallback).
|
|
4. Erst nach erfolgreichem DNS-01-Cert die verbliebene 443-Ausnahme schließen.
|
|
|
|
**Fallback A (Ports öffnen)** — nur falls B verworfen wird: **Kalender-Checkpoint Mitte
|
|
September** (NICHT aufs Ablaufdatum warten). 443 für `0.0.0.0/0` **und** `::/0` öffnen
|
|
(IPv6 separat!), Erneuerung + IPv6-Erstlauf beobachten, danach wieder schließen.
|
|
|
|
## In Arbeit (2026-08-14) — Weg B vorbereitet
|
|
|
|
Der Traefik-Stack liegt in `axion1337.chat/thread-net-git` (Compose, Deploy **manuell** auf
|
|
CFGMON: `cd /opt/thread-net-git && docker compose up -d`; kein Runner mehr). Der DNS-01-Umbau
|
|
ist als Diff fertig (lokal geprüft, noch **nicht** gepusht — gekoppelt an Token + Deploy):
|
|
|
|
- `reverse-proxy`-Command: `acme.tlschallenge` → `acme.dnschallenge` + `provider=ionos` +
|
|
`resolvers=1.1.1.1:53,8.8.8.8:53` (CFGMON ist öffentlich, keine Lab-Port-53-Interception).
|
|
- `environment: IONOS_API_KEY=${IONOS_API_KEY}` — Token aus `/opt/thread-net-git/.env`
|
|
(git-ignoriert), Format `<prefix>.<secret>` (IONOS Developer DNS-API).
|
|
- `acme.json` (letsencrypt-Volume) bleibt — bestehende Certs gelten bis 2026-10-28, Erneuerung
|
|
läuft dann über DNS-01. Volume NICHT löschen.
|
|
|
|
**Zwei menschliche Abhängigkeiten (blockieren den Abschluss):**
|
|
1. **IONOS Developer DNS-API-Key** anlegen (der `<prefix>.<secret>` gehört in die Host-`.env`).
|
|
2. **Deploy + Verifikation auf CFGMON** (kein SSH-Zugang von hier): `.env` setzen →
|
|
`docker compose up -d reverse-proxy` → Test-Erneuerung erzwingen → TXT + neues Cert prüfen.
|
|
|
|
Danach: 443-Weltöffnung ist für ACME nicht mehr nötig (nur noch für die Dienste selbst).
|