10 Commits
Author SHA1 Message Date
Roman KivalinandClaude Opus 4.6 c717da348a Add custom file permissions for key and certificate files
Support key_mode, key_owner, key_group and cert_mode, cert_owner,
cert_group per certificate. Mode is an octal string (e.g. "0640"),
owner/group are resolved by name via getpwnam/getgrnam.

Permissions are checked before applying — system calls are only made
when the current state differs from the desired state, and changes
are logged. Runs on every renew for existing files, not just when
certificates are renewed. Defaults: key 0600, cert 0644, owner/group
unchanged.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 21:03:59 +02:00
Roman KivalinandClaude Opus 4.6 9a09ec5bab Improve user-facing output and README documentation
- Add Display impls for KeyType, DaneUsage, DaneSelector, DaneMatching
  so status output shows ecdsa-p256/ee/spki/sha256 instead of Debug
  formatting
- Document multi-zone DNS clients (zones field) in README
- Document multiple listen addresses for HTTP-01 and TLS-ALPN-01
- Document default_solver with example

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:20:42 +02:00
Roman KivalinandClaude Opus 4.6 b6d299300d Add configurable DNS propagation delay per solver
DNS-01 solvers now accept a propagation_delay option (default 5s).
When multiple solvers are used for a certificate, the longest delay
is used. The Solver trait method changes from needs_propagation_delay()
returning bool to propagation_delay() returning Option<Duration>.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:02:09 +02:00
Roman KivalinandClaude Opus 4.6 4a41e60790 Remove init command
The init command printed systemd-creds encrypt commands, but this is
already covered more thoroughly in the README credential storage docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:21:12 +02:00
Roman KivalinandClaude Opus 4.6 b2b470dd69 Implement TLSA record verification in dane-check
dane-check now queries the authoritative DNS server for published TLSA
records and compares them against expected values computed from the
current certificate. Queries are TSIG-signed using the same key as the
DNS client config (for view selection support). Reports OK, MISSING,
or MISMATCH for each name and exits with code 1 if any check fails.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:12:15 +02:00
Roman KivalinandClaude Opus 4.6 004d93384d Add named hooks with cross-certificate deduplication
Named hooks defined in [[hook]] are referenced by certificates via
hooks = ["name"]. Triggered hooks run after all renewals complete,
in definition order.

Inline [[certificate.hook]] blocks are still supported for
per-certificate hooks that run immediately after each renewal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:41:04 +02:00
Roman KivalinandClaude Opus 4.6 f36b2f8559 Add ACME profile support for IP address certificates
- New per-certificate `profile` field for ACME profile selection
- Let's Encrypt requires "shortlived" for IP address certs (~6 day validity)
- Profile documented in README with link to LE profiles page

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:59:04 +02:00
Roman KivalinandClaude Opus 4.6 0726e829a9 Add HMAC-SHA-384 TSIG support, document HMAC-SHA-512 truncation limitation
BIND 9.18+ truncates HMAC-SHA-512 MACs by default, and hickory-dns
does not support verifying truncated HMACs. Document the workaround
(use hmac-sha256) and add hmac-sha384 as an additional option.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:35:12 +02:00
Roman KivalinandClaude Opus 4.6 25722231e0 Update README for new config format and challenge solvers
Document named DNS clients, solver configuration (DNS-01, HTTP-01,
TLS-ALPN-01), per-domain solver assignment, and IP address certificates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:48:01 +02:00
Roman KivalinandClaude Opus 4.6 000ec410b1 Add README and CHANGELOG
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 21:07:20 +02:00