在 Debian 上 OpenSSL“失效” 通常不是 OpenSSL 本身坏了,而是环境、配置或版本变化导致调用失败。下面按最常见原因给你梳理,并给出排查方法。
Debian(尤其 bullseye → bookworm)默认 OpenSSL 从 1.1.1 → 3.0
典型表现
symbol lookup error
undefined symbol: SSL_*
wrong ELF class
✅ 原因
程序是 用 OpenSSL 1.1 编译的,但系统只有 3.0
✅ 解决
apt install libssl1.1
OpenSSL 没坏,只是证书不被信任
表现
openssl s_client -connect example.com:443
报错:
Verify return code: 20 (unable to get local issuer certificate)
✅ 原因
✅ 解决
apt install ca-certificates
update-ca-certificates
检查时间:
date
OpenSSL 读取:
/etc/ssl/openssl.cnf
错误配置会导致:
✅ 检查
openssl version -a
openssl ciphers
✅ 恢复默认
apt-get install --reinstall openssl
例如:
程序报错:
digital envelope routines::unsupported
✅ 解决(临时)
export OPENSSL_CONF=/etc/ssl/openssl-legacy.cnf
✅ 或升级程序使用新算法
例如:
表现:
which openssl
ldd $(which openssl)
可能:
✅ 建议
mv /usr/local/bin/openssl /tmp/
hash -r
openssl version
which openssl
ldd $(which openssl)
openssl s_client -connect google.com:443
cat /etc/os-release)我可以给你精准修复方案。