Wildcards brauchen DNS-01, HTTP-01 kann sie nicht. Statt eines fremden API-Tokens laeuft die Challenge jetzt per RFC2136 gegen das lokale BIND. Entscheidend ist der Zuschnitt: delegiert wird nur _acme-challenge.lukasrosier.com, nicht die Domain. MX, SPF, DKIM und der Apex bleiben bei Cloudflare, die Mailzustellung haengt also nicht an pinix. Volle Delegation bleibt eine spaetere, eigene Entscheidung. Die Challenge-Zone ist eine eigene, beschreibbare Zone unter /var/lib, weil dynamische Updates Schreibrechte auf Zonendatei und Journal brauchen und der Store read-only ist. Die Hauptzone bleibt dadurch unveraendert deklarativ im Store. update-policy erlaubt dem Schluessel ausschliesslich TXT unter genau diesem Namen -- geprueft: Update dort akzeptiert, derselbe Schluessel gegen die Hauptzone REFUSED, kein Eintrag entstanden. ACME laeuft ueber security.acme statt Traefiks eigenen Resolver (Hinweis des Nutzers auf das NixOS-Modul): Zustand pro Zertifikat unter /var/lib/acme statt gesammelt in Traefiks acme.json, andere Dienste koennen dasselbe Zertifikat lesen, Timer und Reload-Hooks kommen vom Upstream-Modul. Traefik haengt die Dateien nur ein. Das agenix-Secret liegt in Environment-Form und passt unveraendert auf environmentFile; bind.nix rendert daraus zusaetzlich BINDs key-Syntax, also ein Secret in zwei Formaten statt zweier verschluesselter Dateien. dnsResolver bleibt unbesetzt, damit die Propagationspruefung oeffentlich fragt und dasselbe sieht wie Let's Encrypt. Zeigte sie auf das lokale BIND, wuerde sie den Eintrag pruefen, den sie selbst gesetzt hat. checkConfig = false ist unvermeidbar: das Modul laesst named-checkconf mit -z laufen, das jede Zonendatei laden will, und eine dynamische Zone existiert beim Bauen nicht. Als Ersatz laeuft die statische Zone durch named-checkzone, sodass ein Fehler in MX/SPF/DKIM den Build bricht statt erst named. Fallstrick, der Zeit gekostet hat: systemd legt RuntimeDirectory als root:root mit 0750 an. named ist nicht in der Gruppe root, konnte das Verzeichnis nicht durchqueren und meldete "loading configuration: file not found" -- was wie ein falscher Pfad aussieht. Deshalb chown auch auf das Verzeichnis, nicht nur die Datei. Stand: lego schreibt die Challenge nachweislich in unser BIND. Die Ausstellung wartet noch auf den oeffentlichen NS-Eintrag fuer _acme-challenge in der Cloudflare-Zone; bis dahin haelt das Modul das selbst signierte Platzhalterzertifikat (minica) mit korrektem SAN fuer Apex und Wildcard. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Aw4viUJyXGP8ANocHiF15q
14 lines
No EOL
819 B
Text
14 lines
No EOL
819 B
Text
age-encryption.org/v1
|
||
-> ssh-ed25519 brFltw 8lEs3lwlWs06tHjsZUa/+jE//fMfwLYrL/ENJfVCj3s
|
||
d6/9Tp0s+/mWrXhLYf0Rd7NgjCPHoHUhkueKS6tXdK8
|
||
-> ssh-ed25519 ZBSv2g 40c1zQ/RHz/HNhuIJRALYNKZEokD8a++memtURvuxlQ
|
||
50y5grCzPvGz2rndwjhSsNjF9NjQhmpY0H3XBvz+zdg
|
||
-> ssh-ed25519 SCJdcw DZKnksubi9Ln5qFX0PABomc/27ndsxIMe2Vn4B17pzw
|
||
mdBWpUt1rzkuepbeUmlp4/U0l7dR9X7fNXjCh8l5pRk
|
||
-> ssh-ed25519 Hex6QQ Ss5vyguSpJ5/nsD/P1TUPbawkXUy1fsZRmvCB40KbRQ
|
||
xwujTJC80lJJVod70Xw+rEnbzLSaHtb9FuefZancHII
|
||
-> ssh-ed25519 JDJqCg koLjHeya0sCepPsQr+FODnz+n75BU2Mf+gxbNOb3FFs
|
||
NeHD7Ee/M0N8UlQNviTfn5d1FZDYTGV0k6spbsdiids
|
||
--- xWD3nJ3pYJFtstrNjMTcaubGljny6LC7F/PgFdxCOLA
|
||
þLä¾KéqköCØeQÓt‡PFùíî}6û\Ê$L¹ºüUÈ•Àô˜=ø•ââùöÁN@È©ü+-gv<67>þ9!µ]}3g“jêê+–^&”æ¶(ÇÀt%`â,kJ£ÿÉeg0ÍdÃ<64>Þ¤#Ð×iËÂ3—'‚ýÔ{[ïA22ã«"¶·•pާÝ<C2A7>Ð(Š®s2Sò–Ž«¼RDZ¸H΀8
|
||
ôtÜp1Ï<15>ö!Ô}CÙÏ4tÀ§(k€”Y
|