go to index

Centos7.x升级Openssl版本

read time 3 min read
Centos openssl yum 源码

概述

CentOS 7.x 默认安装的 OpenSSL 版本为 1.0.x,在实际使用中经常会需要更高版本的 OpenSSL。本文将介绍两种升级 OpenSSL 的方法:通过 yum 包管理器和源码编译。

方法一:通过 yum 升级

步骤 1:更新默认的 yum

首先尝试使用默认的 yum 源进行更新:

bash
yum update openssl

如果发现版本没有变化,可以考虑安装 EPEL 源以获取更高版本的 OpenSSL。

步骤 2:安装 EPEL 源

bash
yum install -y epel-release

步骤 3:安装 OpenSSL 1.1 版本

bash
yum install -y openssl11 openssl11-devel

步骤 4:查找并替换高版本的 OpenSSL

查找新安装的 OpenSSL 1.1 文件路径:

bash
whereis openssl11

输出示例:

plaintext
openssl11: /usr/bin/openssl11 /usr/lib64/openssl11 /usr/include/openssl11 /usr/share/man/man1/openssl11.1.gz

将系统默认的 OpenSSL 替换为新版本:

bash
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /usr/bin/openssl11 /usr/bin/openssl

mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
ln -s /usr/lib64/openssl11/libssl.so /usr/lib64/libssl.so

mv /usr/lib64/libcrypto.so /usr/lib64/libcrypto.so.old
ln -s /usr/lib64/openssl11/libcrypto.so /usr/lib64/libcrypto.so

mv /usr/lib64/openssl /usr/lib64/openssl.old
ln -s /usr/lib64/openssl11 /usr/lib64/openssl

mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/include/openssl11 /usr/include/openssl

验证版本是否已成功升级:

bash
openssl version

输出示例:

plaintext
OpenSSL 1.1.1k FIPS 25 Mar 2021

方法二:通过源码编译升级

步骤 1:下载高版本 OpenSSL

进入 /usr/local/src 目录并下载 OpenSSL 源码包:

bash
cd /usr/local/src
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1q.tar.gz

步骤 2:解压并编译

bash
tar zxvf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
./config -fPIC shared zlib --prefix=/usr/local/openssl
make
make install

步骤 3:配置动态链接库路径

将新安装的 OpenSSL 库路径添加到动态链接库配置文件中:

bash
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig

步骤 4:替换系统默认的 OpenSSL

bash
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/openssl/include/openssl /usr/include/openssl

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v

验证版本是否已成功升级:

bash
openssl version

输出示例:

plaintext
OpenSSL 1.1.1q 5 Jul 2022

注意事项

  • 备份:在替换系统默认的 OpenSSL 文件之前,建议先备份原有文件(如 openssl.old),以防出现问题时可以恢复。
  • 依赖关系:确保其他依赖于 OpenSSL 的软件和服务在升级后仍能正常运行,必要时重新编译或更新这些依赖项。
  • 测试环境:建议先在测试环境中进行升级操作,确认无误后再应用到生产环境。