Plainnotes

双向 TLS 的最小配置

2024-11-26 · 4 分钟网络

服务间通信想加双向认证,nginx 侧最小配置:

ssl_client_certificate /etc/nginx/ca.pem;
ssl_verify_client on;
ssl_verify_depth 2;

ssl_client_certificate 是签发客户端证书的 CA,不是客户端证书本身;ssl_verify_depth 限制链长度,设太小会拒掉合法的中间 CA。

几个实际会遇到的问题:

  • 客户端证书过期不会自动续,服务间调用直接 400,需要有到期监控。
  • ssl_verify_client optional 允许无证书访问,配合 $ssl_client_verify 做业务判断,比一刀切灵活。
  • 吊销用 CRL 要定期更新,nginx 不会自动拉;OCSP 对客户端证书支持有限。

再往上一层,双向 TLS 只解决“谁在连”,不解决“能做什么”,授权还得自己做。