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. 兼容性保障:通过软链接方式,不影响系统默认版本

注意事项

  • 严格按照教程步骤操作,特别是配置和软链接部分
  • 每步执行后检查是否成功,避免因错误导致系统问题
  • 如需在生产环境操作,建议先在测试环境验证
  • 保存好回滚命令,以备不时之需
相关推荐
weixin_444579302 小时前
Ubuntu 22.04 服务器安装教程(二)——桌面版系统
linux·服务器·ubuntu
许愿OvO2 小时前
HAProxy七层代理:高性能负载均衡实战
运维·负载均衡
Starry_hello world2 小时前
Linux 网络(8)
linux·运维·网络
biubiubiu07062 小时前
Certbot 申请SSL证书的三种方式详解(Ubuntu 22.04环境)
网络·网络协议·ssl
EverydayJoy^v^2 小时前
Linux Shell 高级编程(3)——awk
linux·运维·shell
2301_792185882 小时前
快速熟悉后缀为yml的文件
java·linux·数据库
Eine .2 小时前
LVS负载均衡
运维·负载均衡·lvs
2401_858936882 小时前
【Linux 编程】深入理解 POSIX 线程(pthread)核心接口与分离属性
运维·服务器
小贺儿开发2 小时前
Unity3D 自动化物流分拣模拟
运维·科技·unity·自动化·人机交互·传送带·物流分拣