首页/安全/加密与证书速查/openssl s_client 进阶用法(mTLS 测试)

openssl s_client 进阶用法(mTLS 测试)

除常规连通检查外,s_client 可携带客户端证书做 mTLS 测试、限定套件与协议、通过 starttls 连接邮件服务,是验证服务端配置的通用客户端。

加密与证书速查安全更新于 2026-10-12
mTLS 测试-cert client.crt -key client.key -CAfile ca.pem
限制协商-tls1_2 / -tls1_3 / -cipher / -ciphersuites
STARTTLS-starttls smtp / imap / xmpp 等
输出解读Verify return code、Protocol、Cipher 与 Certificate chain 段

mTLS 与协议限定测试

mTLS 与协议限定测试
openssl s_client -connect api.example.com:443 -servername api.example.com -cert client.crt -key client.key -CAfile ca.pem -verify_return_error </dev/null
openssl s_client -connect mail.example.com:25 -starttls smtp </dev/null | head -10
排查 mTLS 失败时先确认服务端是否发送 CertificateRequest,以及客户端证书 EKU 是否含 clientAuth。

易错点

  • 忘记 -servername 导致服务端返回默认站点证书
  • 客户端证书链不全时服务端拒绝,详细信息只在服务端日志可见

数据来源与参考

  • OpenSSL 官方文档(s_client)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌