在 Linux 下使用 OpenSSL 测试连接,常见用途是 测试 TCP/TLS/SSL 连通性,主要用于排查 HTTPS、IMAPS、SMTPS、数据库连接等是否可达。下面按场景给你讲常用方法。
openssl s_client -connect www.baidu.com:443
✅ 能成功说明:
常见组合:
openssl s_client -connect www.baidu.com:443 -showcerts
显示证书链。
# TLS 1.2
openssl s_client -connect www.baidu.com:443 -tls1_2
# TLS 1.3
openssl s_client -connect www.baidu.com:443 -tls1_3
openssl s_client -connect www.example.com:443 -servername www.example.com
⚠️ 很多 HTTPS 站点 必须加 -servername,否则可能返回错误证书或连接失败。
虽然 openssl 主要用于 TLS,但也可以测试 TCP:
openssl s_client -connect 192.168.1.10:80
但更推荐:
nc -vz 192.168.1.10 80
# 或
telnet 192.168.1.10 80
openssl s_client -connect mail.example.com:993
openssl s_client -connect mail.example.com:465
openssl s_client -starttls smtp -connect mail.example.com:587
同理支持:
-starttls imap-starttls pop3openssl s_client \
-connect server:443 \
-cert client.crt \
-key client.key \
-CAfile ca.crt
echo | openssl s_client -connect www.baidu.com:443 2>/dev/null | openssl x509 -noout -text
openssl s_client -connect www.baidu.com:443 -debug
或:
openssl s_client -connect www.baidu.com:443 -state
| 错误 | 含义 |
|---|---|
connect: Connection refused |
端口未开 |
no peer certificate available |
证书问题 |
handshake failure |
TLS 版本/加密套件不匹配 |
certificate verify failed |
CA 不受信任 |
✅ 能通:
Verify return code: 0 (ok)
❌ 不通:
如果你愿意,可以告诉我:
我可以给你一条 直接可用的命令。