什么是 openssl s_client -connect?
openssl s_client -connect 是 OpenSSL 工具包中的一个命令行工具,用于建立到指定服务器的 TLS/SSL 连接,常用于调试 HTTPS、SMTPS、IMAPS 等加密服务。
基本语法
openssl s_client -connect host:port [options]
例如,测试 example.com 的 HTTPS 服务:
openssl s_client -connect example.com:443
常用选项说明
-servername example.com:启用 SNI(Server Name Indication),对虚拟主机至关重要。-showcerts:显示完整的证书链。-CAfile /path/to/ca.pem:指定信任的 CA 证书文件。-tls1_2或-tls1_3:强制使用特定 TLS 版本。-quiet:减少输出,仅保留关键信息。
实用示例
1. 测试 HTTPS 网站并查看证书
openssl s_client -connect www.example.com:443 -servername www.example.com
2. 指定 TLS 1.2 并验证证书链
openssl s_client -connect api.example.com:443 -tls1_2 -showcerts
3. 通过 STARTTLS 测试 SMTP 服务(需额外交互)
openssl s_client -connect smtp.example.com:587 -starttls smtp
常见问题
连接被拒绝? 确保目标端口开放且服务正在运行。
证书验证失败? 可添加 -verify_return_error 查看详细错误,或使用 -CAfile 指定正确 CA。
无法连接 IPv6 地址? 尝试使用方括号包裹地址:[::1]:443。