diff --git a/cc-ci-plan/JOURNAL.md b/cc-ci-plan/JOURNAL.md index ba9f037..202cea7 100644 --- a/cc-ci-plan/JOURNAL.md +++ b/cc-ci-plan/JOURNAL.md @@ -953,3 +953,26 @@ and corrected to acme-dns 2.x `sqlite` before any account registration succeeded `_acme-challenge.ci.commoninternet.net. CNAME 9d3f0428-eb97-4b14-bb07-da2f0f6c2073.acme.commoninternet.net.` Once propagated, resume with a staging issuance, then production cutover/handoff verification. Do not obtain or add a Gandi token. + +## Session 2026-08-31 19:05 UTC — ACME production issuance complete + +**Completed:** The operator added the narrow Gandi delegation and permanent CNAME. Staging then +validated both `ci.commoninternet.net` and `*.ci.commoninternet.net`; production issuance validated +the same SAN pair and produced a Let's Encrypt certificate valid through 2026-11-29. cc-ci PRs #28–#30 +were merged to promote production, make Traefik roll certificate-secret changes even when recipe +upgrades are held, and remove the retired SOPS wildcard-file injection. + +**Live cc-ci state:** +- `/var/lib/acme/ci.commoninternet.net` is the sole source of the production cert/key; the runtime + pair matches it, is root-only for the key, and Traefik now references matching versioned Swarm + secrets. Reboot-safe `nixos-rebuild switch` completed at cc-ci `7147d77` after the required test + activations and health checks. +- acme-dns remains authoritative only for the delegated subzone, its update API is localhost-only, + registration is disabled, and the restricted-account JSON is mode `0600`. The Nix ACME renewal + timer is active. No Gandi credential was added. + +**External blocker, not cc-ci-owned:** Direct TLS to `91.98.47.73:443` now presents the new valid +certificate. The operator-managed public gateway at `143.244.213.108` currently accepts TCP then +closes TLS before presenting a certificate, so its passthrough to cc-ci needs repair/verification. +The cc-ci plan explicitly marks the gateway as operator infrastructure; do not change the DNS +delegation or add a Gandi token to work around it.