在 Linux 上“修复 OpenSSL 漏洞”通常不是重新编译 OpenSSL,而是升级系统提供的 OpenSSL 软件包。下面按最常见、最安全、最推荐的做法给你一个完整指南。
openssl version -a
示例输出:
OpenSSL 1.1.1f 31 Mar 2020
⚠️ 注意:
即使版本号看起来“旧”,只要系统打了安全补丁,也可能已经修复
sudo apt update
sudo apt upgrade openssl libssl-dev
或一次性升级所有安全补丁:
sudo apt update
sudo apt upgrade
检查是否修复:
apt changelog openssl | grep CVE
sudo yum update openssl
或:
sudo yum update
sudo dnf update openssl
sudo yum update openssl
❌ 不推荐原因:
✅ 只有在以下情况才考虑编译:
wget https://www.openssl.org/source/openssl-3.0.12.tar.gz
tar -xzf openssl-3.0.12.tar.gz
cd openssl-3.0.12
./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make -j$(nproc)
sudo make install
echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
⚠️ 不要覆盖系统 /usr/bin/openssl 或 /lib64/libssl.so
openssl version
并确认:
openssl ciphers -v | grep <漏洞相关算法>
或:
ldd $(which openssl)
| ❌ 误区 | ✅ 正确做法 |
|---|---|
| 只看版本号就认为有漏洞 | 看 系统补丁 CVE 修复记录 |
| 手动删除系统 OpenSSL | 永远不要 |
| 只升级 openssl 程序 | 也要升级 libssl |
Linux 修复 OpenSSL 漏洞 = 升级系统 OpenSSL 软件包,而不是手动编译。
如果你愿意,可以告诉我:
我可以给你精确到命令级别的修复方案 ✅