Blog

Mutual TLS in browsers: client certificates interact with CORS but are not a substitute

The TLS layer proves channel identity; CORS still governs which JavaScript origins may read responses.

1 min read
mtlstlssecuritycors

API design

Prefer short-lived access tokens after mTLS handshake completes to avoid repeated cert picker UX.

Do not echo raw certificate DN strings into Access-Control-Expose-Headers without redaction.

Failure modes

Expired client certs fail before HTTP; users may blame CORS—surface clear TLS errors in your status page.

Corporate proxies sometimes strip client cert handshakes—document split-tunnel requirements.

Back to blog