A failed ACME key decrypt silently downgrades an apex to the self-signed fallback cert #38
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
health.rs:517-523, inreload_routes_config:Both failures are swallowed. When the decrypt fails, the apex is never inserted
into the resolver — and
SniResolver::resolve(tls.rs:81-83) treats an absentapex as "use the fallback", so the client is served the self-signed
edge-router.localcertificate instead of getting a handshake failure.The operator sees a browser certificate warning on a domain that has a valid
certificate sitting in the database, with nothing in the log to explain it.
Users are trained to click through exactly this warning.
Reachable whenever
crypto.decryptfails for a stored ACME key — most plausiblyENCRYPTION_ENGINE=openbaowith OpenBao sealed or unreachable, where it affectsevery
[[tls]]apex at once.Two parts to the fix:
that could not be loaded should abort the handshake, not substitute a
different certificate. The tombstone approach is described in
specs/2026-10-20-runtime-resilience-and-error-attribution-design.md("Refusal, not fallback").
The genuine no-SNI case (netboot dialling by IP) keeps using the fallback slot
deliberately — that is unaffected.