Skip to content
ecdsa.com

mTLS (mutual TLS)

TLS in which the client also authenticates with a certificate and a CertificateVerify signature, so both ends prove possession of private keys; common for service-to-service traffic, devices and OAuth sender-constrained tokens.
Also written asmutual TLSclient certificate authenticationtwo-way TLS

The server sends CertificateRequest with acceptable signature algorithms and, optionally, CA names; the client answers with its chain and a signature over the transcript. The server validates the chain against its own trust store (usually a private CA) and maps the certificate to an identity, for example a SPIFFE ID in the SAN URI or a subject name.

Service meshes (Istio, Linkerd), zero-trust gateways, payment networks, IoT fleets and OAuth 2.0 mTLS client authentication and certificate-bound tokens (RFC 8705) rely on it. The certificate binding survives only end to end: a TLS-terminating proxy must forward verified client identity in a trusted header.

Public TLS certificates are no longer a source of client certificates: Chrome's root program requires server-only EKUs, and public CAs stopped issuing clientAuth in TLS certificates in 2026. Use a private CA with short-lived certificates.

Standards and references

All terms