“Linux 下 OpenSSL 失败”是一个比较宽泛的说法,原因可能有很多种。下面我从常见原因 → 排查思路 → 典型场景与解决办法几个方面给你说明,你可以对照自己的情况。
最基础也最常见的问题。
表现:
openssl: command not foundunknown optionunable to load config原因:
检查:
which openssl
openssl version
解决:
# Debian / Ubuntu
apt install openssl
# CentOS / Rocky / Alma
yum install openssl
表现:
unable to verify the first certificateno start linePEM routinesSSL_CTX_use_PrivateKey原因:
检查:
openssl x509 -in cert.pem -text -noout
openssl rsa -in key.pem -check
解决:
表现:
WARNING: can't open config file
error on line -1
原因:
openssl.cnf解决:
export OPENSSL_CONF=/etc/ssl/openssl.cnf
或显式指定:
openssl req -config /etc/ssl/openssl.cnf ...
表现:
Permission denied解决:
chmod 600 key.pem
chown youruser:key.pem
表现:
no protocols availableunsafe legacy renegotiationhandshake failure原因:
测试:
openssl s_client -connect host:443 -tls1_2
表现:
error while loading shared libraries
原因:
解决:
ldd $(which openssl)
echo $LD_LIBRARY_PATH
建议你提供以下信息之一:
例如:
Ubuntu 22.04,OpenSSL 3.0
openssl s_client -connect example.com:443报 handshake failure
你可以直接把报错截图或复制文本发出来,我可以精准告诉你哪一步错了、怎么修。