前言
本文的主要内容是讲述 如何在 CentOS 7 操作系统上通过源代码方式编译安装 OpenSSL 的最新版本。
CentOS 7 默认的 OpenSSL 版本过低会导致一些应用程序安装失败或者无法使用,因此需要升级 OpenSSL 到指定版本,可能是 1.1+ 或者是 3.1+。
系统软件源的 OpenSSL 版本
yum install -y openssl
openssl version
[root@host ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
当前操作系统版本是 CentOS 7.9.2009。
而 OpenSSL 官方最新版本是 3.4+,有升级需求的人请往后看。
更改 CentOS 7 软件源
由于 CentOS 7 的官方软件源已经无法使用,于是这里必须更改软件源:
cat>/tmp/installer.sh<<EOF
cd /etc/yum.repos.d
sed -i "s@mirrorlist=http://mirrorlist.centos.org@## mirrorlist=http://mirrorlist.centos.org@g" *.repo
sed -i "s@#baseurl=http://mirror.centos.org@baseurl=https://mirrors.aliyun.com@g" *.repo
yum makecache
yum update -y
EOF
bash /tmp/installer.sh
安装 GCC-11
由于 CentOS 7 通过软件源安装的 GCC 版本过低,于是在这里升级 GCC 的版本。
cat>/tmp/installer.sh<<EOF
yum update -y
echo "+++++++++++++++++++++++++++++++++安装 GCC 11:"
yum install -y centos-release-scl
cd /etc/yum.repos.d
sed -i "s@mirrorlist=@# mirrorlist=@g" CentOS-SCLo-scl.repo
sed -i "s@mirrorlist=@# mirrorlist=@g" CentOS-SCLo-scl-rh.repo
sed -i "s@# baseurl=http://mirror.centos.org@baseurl=https://mirrors.aliyun.com@g" CentOS-SCLo-scl.repo
sed -i "s@#baseurl=http://mirror.centos.org@baseurl=https://mirrors.aliyun.com@g" CentOS-SCLo-scl-rh.repo
yum install -y devtoolset-11
echo "source /opt/rh/devtoolset-11/enable" >>/etc/bashrc
source /etc/bashrc
ln -vsf /opt/rh/devtoolset-11/root/bin/* /usr/bin/
/usr/bin/gcc --version | grep "gcc (GCC) 11."
EOF
bash /tmp/installer.sh
安装依赖
cat>/tmp/installer.sh<<EOF
yum groupinstall -y "Development Tools"
yum install -y wget gcc make zlib-devel perl perl-IPC-Cmd perl-Test-Simple perl-CPAN
EOF
bash /tmp/installer.sh
下载 OpenSSL 源码
检验安装的 OpenSSL
ldconfig -v | grep -i "libssl"
ldconfig -v | grep -i "libcrypto"
如果是类似于以下执行结果,那么表示 OpenSSL 3.4+ 安装成功:
libssl.so.3 -> libssl.so.3
libssl3.so -> libssl3.so
libssl.so.10 -> libssl.so.1.0.2k
# 以及
libcrypto.so.3 -> libcrypto.so.3
libcrypto.so.10 -> libcrypto.so.1.0.2k
查看当前 OpenSSL 版本
openssl version
命令执行结果:
OpenSSL 3.4.1 11 Feb 2025 (Library: OpenSSL 3.4.1 11 Feb 2025)
总结
OpenSSL 是 Web 时代不可或缺的基本组件,是现代密码学技术的重要组成部分。无论是 SSL/TLS 的大众普及,还是它支持的多种加解密算法,都是现代 IT 工业的基石。
在 HTTPS 和其他 Sockets 通信的领域往往需要 OpenSSL 来进行加密传输、完整性保证,和防止窃听等等工作。为避免版本过于老旧所引发的各种问题,包括程序代码的漏洞以及对一些版本比较新的软件对新版本 OpenSSL 的需求等等,所以要更新为最新版本以适应需求。
由于 CentOS 7 上面的 OpenSSL 版本太老,可能会不满足当前一些最新应用程序的要求,因此在编译安装 LEMP 架构的软件之前升级它。
鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。
本文章可以转载,但是需要说明来源出处!
本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com

