跳到主要内容
ecdsa.com

mTLS(双向 TLS)

一种 TLS 用法:客户端也用证书和 CertificateVerify 签名进行身份验证,因此通信双方都要证明自己持有私钥;常用于服务间通信、设备以及 OAuth 发送方约束令牌。
其他写法mutual TLSclient certificate authenticationtwo-way TLS

服务器发送 CertificateRequest,列出可接受的签名算法,还可以附带 CA 名称;客户端回复自己的证书链以及对握手记录(transcript)的签名。服务器根据自己的信任库(通常是私有 CA)验证该证书链,并把证书映射到某个身份,例如 SAN URI 中的 SPIFFE ID 或主体名称。

服务网格(Istio、Linkerd)、零信任网关、支付网络、IoT 设备群,以及 OAuth 2.0 的 mTLS 客户端身份验证和证书绑定令牌(RFC 8705)都依赖它。证书绑定只在端到端的情况下才成立:终止 TLS 的代理必须通过受信任的请求头转发已验证的客户端身份。

公共 TLS 证书已不再能作为客户端证书的来源:Chrome 根证书计划要求只含服务器用途的 EKU,公共 CA 也已在2026年停止签发带 clientAuth 的 TLS 证书。应改用签发短期证书的私有 CA。

标准与参考资料

全部术语