CentOS 7 升级 OpenSSL 3.5.4 详细指南

🔧 CentOS 7 升级 OpenSSL 3.5.4 详细教程

CentOS 7 默认自带的 OpenSSL 是 1.0.2k 版本,较为陈旧,不支持许多现代协议和加密套件。本教程将详细介绍如何通过源码编译方式升级到 OpenSSL 3.5.4,同时避免影响系统依赖。

本次没有直接升级 OpenSSL 3.6.0 是因为当前系统 GCC 版本太老需要升级才可以继续编译安装,生产环境大概率不会折腾了而且 CentOS 7已经停止维护新业务肯定是需要更换系统了。

适用场景:CentOS 7 (Redhat 7应该可以按照这个教程安装)


一、准备工作

1. 确认系统版本

bash 复制代码
cat /etc/centos-release

输出类似:

复制代码
CentOS Linux release 7.9.2009

2. 确认当前 OpenSSL 版本

bash 复制代码
openssl version

3. 安装编译依赖

bash 复制代码
yum -y install epel-release
yum -y groupinstall "Development Tools"
yum -y install perl-core zlib zlib-devel wget curl tar

二、下载 OpenSSL 3.5.4

bash 复制代码
cd /tmp
wget https://github.com/openssl/openssl/releases/download/openssl-3.5.4/openssl-3.5.4.tar.gz
tar -zxvf openssl-3.5.4.tar.gz
cd openssl-3.5.4

三、编译 & 安装

1. 配置安装目录

建议不要覆盖系统自带的 1.0.2k,而是安装到 /usr/local/openssl-3.5.4,并通过软链接控制版本。

从这步骤开始,每步执行完成后建议查看是否执行成功,使用命令 echo $?。如果输出是 0 就继续执行,否则先查看报错信息。

bash 复制代码
./Configure linux-x86_64 \
  --prefix=/usr/local/openssl-3.5.4 \
  --openssldir=/usr/local/openssl-3.5.4/ssl \
  enable-zlib \
  enable-threads \
  enable-dynamic-engine \
  shared

🔹linux-x86_64 表示 64 位 Linux 系统(x86_64 架构)

🔹--prefix=/usr/local/openssl-3.5.4 安装根目录

🔹--openssldir=/usr/local/openssl-3.5.4/ssl 运行时配置目录

🔹 zlib:启用压缩支持

🔹 enable-threads 启用多线程支持

🔹 enable-dynamic-engine 启用动态引擎加载

🔹 shared:启用共享库(libssl.so / libcrypto.so

2. 编译安装

bash 复制代码
## 编译过程很慢尤其是双核或者四核心的CPU,16核心以上的CPU很快
make -j$(nproc)
make install

四、配置系统使用新版本

1. 建立软链接

bash 复制代码
mv /usr/bin/openssl /usr/bin/openssl.bak
chmod -R 755  /usr/local/openssl-3.5.4
ln -s /usr/local/openssl-3.5.4/bin/openssl /usr/bin/openssl

2. 配置库文件

bash 复制代码
echo "/usr/local/openssl-3.5.4/lib64" >>  /etc/ld.so.conf
ldconfig

3. 验证

bash 复制代码
openssl version

验证成功的输出应为:

bash 复制代码
OpenSSL 3.5.4 30 Sep 2025 (Library: OpenSSL 3.5.4 30 Sep 2025)

五、兼容性注意事项

1. 系统依赖

CentOS 7 中 yumcurlssh 等很多包依赖 openssl-1.0.2k,强行覆盖可能导致软件不可用。

推荐方案:

  • 保留 /usr/lib64/libssl.so.10/usr/lib64/libcrypto.so.10(系统用)
  • 自己编译的软件(Nginx、OpenSSH 等)指定新 OpenSSL 路径编译

2. Nginx / OpenSSH 重新编译

例如 Nginx:

bash 复制代码
./configure --with-openssl=/usr/local/src/openssl-3.5.4 ...

这样才能启用 TLSv1.3 协议支持。


六、回滚方法

如果新版本出现问题,可以按照以下步骤回滚到系统默认版本:

bash 复制代码
rm -f /usr/bin/openssl
mv /usr/bin/openssl.bak /usr/bin/openssl
rm -f /etc/ld.so.conf.d/openssl-3.5.4.conf
ldconfig

✅ 至此 CentOS 7 已成功升级到 OpenSSL 3.5.4,并且可以独立运行新版本,不影响系统自带的 1.0.2k。


七、CentOS 7 离线升级 OpenSSL 3.5.4 操作指南

1. 下载离线安装包

安装包地址:

🔗 百度网盘下载

提取码:hw8u

下载后,将安装包上传到服务器。


2. 解压安装包

bash 复制代码
unzip openssl.zip

3. 安装依赖包

bash 复制代码
cd openssl
yum localinstall -y *.rpm

4. 从步骤二开始安装 OpenSSL 3.5.4

依赖安装完成后,继续执行之前教程里的第二步(下载 OpenSSL 3.5.4 源码并编译安装)。


5. 如果仍缺少依赖包

在安装过程中,如果提示缺少依赖,可以使用以下命令下载补充依赖包(在有网络的机器上操作):

bash 复制代码
## 方法 1:下载指定包及其依赖
yumdownloader --resolve --destdir=./openssl <包名>  
# 注意:需要先安装 yum-utils
yum install -y yum-utils

## 方法 2:下载 Development Tools 整个工具组
yum groupinstall --downloadonly --downloaddir=./openssl "Development Tools"

## 方法 3:单独下载某些依赖包
yum install --downloadonly --downloaddir=./openssl <包名>

下载完成后,将依赖包拷贝到离线服务器,再用:

bash 复制代码
yum localinstall -y *.rpm

进行安装。


总结

通过本教程,你已掌握在 CentOS 7 系统上升级 OpenSSL 到 3.5.4 版本的方法,包括:

  • 在线升级的完整步骤
  • 离线升级的详细指南
  • 系统兼容性处理
  • 紧急回滚方案

升级后的优势

  1. 安全性提升:获得最新的安全补丁和漏洞修复
  2. 性能优化:支持更高效的加密算法和协议
  3. 功能扩展:启用 TLSv1.3 等现代协议支持
  4. 兼容性保障:通过软链接方式,不影响系统默认版本

注意事项

  • 严格按照教程步骤操作,特别是配置和软链接部分
  • 每步执行后检查是否成功,避免因错误导致系统问题
  • 如需在生产环境操作,建议先在测试环境验证
  • 保存好回滚命令,以备不时之需
相关推荐
vortex515 小时前
Debian 包管理全指南:从底层 dpkg 到高层 apt 及其日志追踪
linux·运维·debian
偶尔上线经常挺尸16 小时前
《每日一命令08:scp——安全的远程复制》
linux·安全·scp·文件传输·运维基础·远程复制
计算机安禾16 小时前
【Linux从入门到精通】第17篇:日志系统——系统运行的黑匣子
linux·运维·服务器
l1t16 小时前
DeepSeek辅助解决windows 11 wsl2中Linux版Dbeaver显示中文
linux·运维·windows
pengyi87101518 小时前
独享IP+动态IP结合核心逻辑,破解稳定与灵活的矛盾
linux·运维·网络
阿祖zu18 小时前
本地到生产,解决 AI 全栈最后一公里——构建&部署&运维
运维·架构·aigc
MAVER1CK1 天前
Install VNC in Docker container
运维·docker·容器
橘颂TA1 天前
【Linux】读写锁
大数据·linux·开发语言·c++·读写锁
Strange_Head1 天前
补充知识点`makefile`、`config`、`GLP协议` 1/3 ——《驱动篇》
linux·嵌入式硬件
lcj09246661 天前
数据中心运维升级|磁控U位硬件联动DCIM,破解U位管控难题
运维·人工智能·经验分享·信息可视化