diff --git a/docs/src/dns.md b/docs/src/dns.md index 38186a1..51f0e5d 100644 --- a/docs/src/dns.md +++ b/docs/src/dns.md @@ -32,6 +32,30 @@ Automatic signing on `ns1` only, policy `cnx`: ECDSA P-256/SHA-256. The ZSK auto-rolls; the KSK is kept stable, so the DS at the registrar only changes on a manual KSK rollover. +### Registrar DS records + +Knot manages all key material itself on `ns1` (the only signer); the KSK/ZSK +private keys live in the KASP keystore under `/var/lib/knot` (backed up nightly — +see [Backups](./backups.md)). You never touch the private keys directly. + +What a registrar needs is the **DS record** for a zone's KSK, which anchors the +zone into the parent's chain of trust. Generate it on `ns1` — the `keymgr` wrapper +is already pointed at Knot's config, and it runs as the `knot` user that owns the +keystore: + +``` +sudo -u knot keymgr ds +``` + +e.g. `sudo -u knot keymgr cnx.email ds`. Paste the printed DS record (key tag, +algorithm 13, digest type, digest) into the registrar's DNSSEC form for that +domain. Repeat per signed zone (`cnx.network`, `buildfor.life`, `cnx.email`) at +whichever registrar holds each delegation. After submitting, confirm the parent +publishes it with `dig +short DS `. + +The ZSK rolls automatically and needs no registrar action; only a **KSK rollover** +requires re-submitting the DS. + > **Pending (manual):** submit DS records for `buildfor.life` and `cnx.email` > once they're at a DNSSEC-capable registrar.