0542ed56cb
Two bugs caused mTLS to be silently disabled when all issued client certificates for a CA were revoked: 1. New cert-based trust model (caddy.ts): When deriving CA IDs from trusted cert IDs, revoked certs were invisible (active-only query), causing derivedCaIds to be empty and the domain to be dropped from mTlsDomainMap entirely — no mTLS policy at all. Fix by falling back to a cert-ID-to-CA-ID lookup that includes revoked certs, keeping the domain in the map so it gets a fail-closed policy. 2. Legacy CA-based model (caddy-mtls.ts): buildClientAuthentication returned null when all certs were revoked, relying on Caddy's experimental "drop" TLS connection policy field which didn't work reliably. Fix by pinning to the CA cert itself as a trusted_leaf_certs entry — no client cert can hash-match a CA certificate (and presenting the CA cert would require its private key, already a full compromise). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>