Linux 下 OpenSSL 连接失败的原因很多,通常不是 OpenSSL 本身“坏了”,而是网络、证书、协议或配置问题。下面按常见原因 → 排查方法给你一个系统清单。
表现
Connection refusedNetwork is unreachableTimeout排查
ping 域名
telnet 域名 端口
# 或
nc -vz 域名 端口
常见原因
表现
wrong version number
no protocols available
原因
测试指定协议
openssl s_client -connect host:443 -tls1_2
openssl s_client -connect host:443 -tls1_3
表现
certificate verify failed
self signed certificate
unable to get local issuer certificate
原因
诊断
openssl s_client -connect host:443 -showcerts
临时测试(不推荐生产)
openssl s_client -connect host:443 -no_verify
修复方式
yum install ca-certificates
# 或
apt install ca-certificates
update-ca-trust
表现
测试 SNI
openssl s_client -connect host:443 -servername host
表现
handshake failure
no cipher overlap
原因
查看支持的套件
openssl ciphers
表现
查看版本
openssl version
建议
openssl s_client -connect example.com:443 -debug
或:
openssl s_client -connect example.com:443 -state
你会看到:
如果你愿意,可以把下面信息发我:
cat /etc/os-release
openssl version
OpenSSL 连接失败 90% 是: 网络不通 + 证书不被信任 + 协议/套件不匹配
如果你能贴具体报错,我可以直接告诉你是哪一类、怎么修。