CentOS 7 升级 OpenSSL 3.5.1 的详细教程

CentOS 7 升级 OpenSSL 3.5.1 的详细教程

CentOS 7 默认自带的 OpenSSL 是 1.0.2k,比较老,不支持许多现代协议和加密套件。

升级需要 源码编译 ,并避免影响系统依赖。

OpenSSL 官网:https://www.openssh.com/

离线安装看第七步,第七步执行完以后从 "二、下载 OpenSSL 3.5.1" 开始操作


🔧 CentOS 7 升级 OpenSSL 3.5.1 教程

一、准备工作

  1. 确认系统版本
bash 复制代码
cat /etc/centos-release

输出类似:

复制代码
CentOS Linux release 7.9.2009
  1. 确认当前 OpenSSL 版本
bash 复制代码
openssl version
  1. 安装编译依赖
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.1

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

三、编译 & 安装

1. 配置安装目录

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

注意:从这步骤开始每步执行完成以后建议查看书否执行成功 echo $? 这个命令输出如果是0 就继续执行否则先看报错。

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

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

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

🔹--openssldir=/usr/local/openssl-3.5.1/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.1
ln -s /usr/local/openssl-3.5.1/bin/openssl /usr/bin/openssl

2. 配置库文件

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

3. 验证

bash 复制代码
openssl version

输出应为:

复制代码
OpenSSL 3.5.1 1 Jul 2025 (Library: OpenSSL 3.5.1 1 Jul 2025)

五、兼容性注意事项

  1. 系统依赖
    CentOS 7 中 yumcurlssh 等很多包依赖 openssl-1.0.2k,强行覆盖可能导致软件不可用。
    👉 推荐方案:
  • 保留 /usr/lib64/libssl.so.10/usr/lib64/libcrypto.so.10(系统用)
  • 自己编译的软件(Nginx、OpenSSH 等)指定新 OpenSSL 路径编译
  1. Nginx / OpenSSH 重新编译
    例如 Nginx:
bash 复制代码
./configure --with-openssl=/usr/local/src/openssl-3.5.1 ...

这样才能启用 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.1.conf
ldconfig

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


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

1. 下载离线安装包

安装包地址:

🔗 百度网盘下载

提取码:nnga

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


2. 解压安装包

bash 复制代码
unzip openssl.zip

3. 安装依赖包

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

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

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


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

进行安装。