概述
内部 API 若信任网络上的任何来源,一旦攻击者进入集群即可无凭证横向移动。mTLS 要求调用方出示受信客户端证书,把身份验证从网络位置转移到可验证的密码学身份。
关键步骤
- 由内部 CA 签发带明确主体或 SAN 身份的客户端证书。
- 配置服务器要求并校验客户端证书链。
- 把证书身份映射为授权主体。
- 轮换客户端证书并拒绝过期或已吊销者。
验证
- 无证书或证书不受信任的客户端在握手阶段被拒绝。
- 授权基于证书身份而非 IP。
- 证书轮换后连接正常。
- 过期或吊销的证书被拒绝。
注意事项
- mTLS 需要证书生命周期管理,比静态凭证更重。
- 它无法防范合法持有有效证书的被攻陷服务。
适用范围
本条目围绕「为服务间调用强制 mTLS」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
openssl verify -CAfile ca.crt client.crt
# nginx
ssl_client_certificate /etc/ssl/ca.crt;
ssl_verify_client on;