Mutual TLS β step-by-step, with every key usage explained
In regular TLS, only the server proves its identity to the client. The client just trusts whoever has a valid certificate.
In mTLS (Mutual TLS), both sides authenticate: the server proves itself to the client AND the client proves itself to the server. This is used in zero-trust networks, API gateways, microservices, and banking systems.
Used to sign the ServerKeyExchange (DH params) proving the server owns the certificate.
Shared via certificate. Client uses it to verify the signature on ServerKeyExchange.
Used to sign the CertificateVerify message, proving the client owns its certificate.
Shared via certificate. Server uses it to verify the signature on CertificateVerify.
Both sides use CA public keys to verify certificate signatures. Stored in trust stores.
Symmetric keys derived from both random values + DH shared secret. Never transmitted directly.