You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two new ways to get a certificate, both aimed at holding fewer DNS credentials.
Highlights
CHALLENGE_TYPE=tls-alpn-01 (#105) — issue with no DNS credentials at all. The CA validates over port 443; haproxy peeks at the ALPN and forwards acme-tls/1 to lego, everything else to the TLS frontend. The operator creates the records once; DNS_SETUP_MODE picks whether the container waits for them, just prints them, or POSTs them to a webhook (signed with HMAC-SHA256 and a TDX quote over the payload). Wildcards are not available in this mode — RFC 8737 does not allow them.
DELEGATION_ZONE (#104, #108) — full delegation for dns-01. Every name the deployment needs is aliased into a zone your token controls, so the token needs no access to the served domain's own zone. You create three CNAMEs once, before deploying, and never touch DNS again — not when the app id changes, not when the ACME account is recreated, not when the gateway moves. Wildcards need a fourth, because RFC 8659 evaluates CAA at the base.
Also in this release
haproxy now reloads only on an actual renewal (#102). 2.2 treated every renewal check as a renewal, so it regenerated evidence and reloaded haproxy every 12 hours whether or not anything changed.
The ACME contact address is optional. 2.2 always passed --email; leave ACME_EMAIL unset for a contactless account, which matters because the address is published in the evidence.
Renewal is configurable:RENEW_INTERVAL (default 12h, 2.2's hard-coded cadence) and RENEW_DAYS_BEFORE.
CERTBOT_EMAIL → ACME_EMAIL, CERTBOT_STAGING → ACME_STAGING. The old names still work.
The evidence server binds to loopback. Still served at https://<domain>/evidences/; only a deployment that published the container's port 80 itself is affected.
See TESTING.md for how this release was exercised.