Enforce wildcard dns-persist policy from ACME authorization flag #12

Closed
opened 2026-09-28 18:41:03 +00:00 by mona · 0 comments

Wildcard ACME authorizations represent the base domain in Authorization.Identifier.Value and signal wildcard status separately with Authorization.Wildcard. The dns-persist verification currently infers wildcard status by looking for *. in the raw identifier, so it passes RequireWildcard: false for a wildcard authorization and can accept a standing record without policy=wildcard.

Relevant code: internal/acmeclient/issue.go:277-293; the protocol field and IdentifierValue helper are in internal/acme/authorization.go:56-78.

Use authz.Wildcard when verifying policy. Preserve the stripped base name for DNS lookup.

Acceptance: a wildcard authz with identifier example.com and Wildcard=true rejects a matching standing record lacking wildcard policy and accepts one with policy=wildcard; a non-wildcard authz keeps existing behavior.

Wildcard ACME authorizations represent the base domain in `Authorization.Identifier.Value` and signal wildcard status separately with `Authorization.Wildcard`. The dns-persist verification currently infers wildcard status by looking for `*.` in the raw identifier, so it passes `RequireWildcard: false` for a wildcard authorization and can accept a standing record without `policy=wildcard`. Relevant code: `internal/acmeclient/issue.go:277-293`; the protocol field and `IdentifierValue` helper are in `internal/acme/authorization.go:56-78`. Use `authz.Wildcard` when verifying policy. Preserve the stripped base name for DNS lookup. Acceptance: a wildcard authz with identifier `example.com` and `Wildcard=true` rejects a matching standing record lacking wildcard policy and accepts one with `policy=wildcard`; a non-wildcard authz keeps existing behavior.
mona Bot added the Kind/Bug
Priority
Medium
3
labels 2026-09-28 18:41:03 +00:00
kruno closed this issue 2026-10-08 19:28:09 +00:00
Sign in to join this conversation.