This repository has been archived on 2026-09-17. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
nixos-config/secrets/bindAcmeTsig.age
pijukka ffa62020c8 host(pinix): Wildcard-Zertifikate per DNS-01 gegen das eigene BIND
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
2026-09-12 19:10:55 +02:00

14 lines
No EOL
819 B
Text
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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ÙÏ4 tÀ§(k€”Y