如何在 CentOS 7 / RHEL 7 上安装 OpenSSL 1.1.x_centos7

OpenSSL 是一个开源软件库,由用于实现传输层安全性 (TLS) 和安全套接字层 (SSL) 协议以及其他加密功能(如签名、加密、解密和验证)的工具和库组成。操作系统和许多应用程序使用 OpenSSL 通过 Internet 提供安全通信。

提醒:去年OpenSSL爆出了几个漏洞,大家要使用,一定要保持版本更新,避免使用了存在漏洞的版本。

CentOS 7 / RHEL 7 操作系统上可用的 OpenSSL 版本有点旧,如果需要更新的版本,某些应用程序在编译时会出现错误。

$ sudo yum -y install openssl openssl-devel
$ openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

从输出中可以看出,可用的版本是 1.0.2。如果已安装,请在继续操作之前将其删除。

sudo yum -y remove openssl openssl-devel

确认它已卸载。

$ openssl version
-bash: openssl: command not found

在 CentOS 7 / RHEL 7 上安装 OpenSSL 1.1.x

OpenSSL 库提供了一套全面的加密功能,包括数字签名、对称和非对称加密、哈希和证书管理。它还支持各种加密算法,包括 RSA、DSA、Diffie-Hellman 和椭圆曲线加密。

安装构建 OpenSSL 所需的依赖项。

sudo yum -y groupinstall "Development Tools"

下载 OpenSSL 1.1.x 的源代码,其中 替换为所需的实际版本。

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz

提取 dowloaded 文件。

tar xvf openssl-1.1.1w.tar.gz

导航到从文件提取创建的目录。

cd openssl-1.1*/

配置 OpenSSL。您可以指定

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

哪里:

  • --prefix并控制已安装组件的配置。--openssldir
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1t (0x1010114fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************


使用命令构建 OpenSSL 1.1.x。make

make -j $(nproc)

在 CentOS 7 / RHEL 7 上安装 OpenSSL 1.1.1

sudo make install

更新共享库缓存。

sudo ldconfig

更新系统范围的 OpenSSL 配置:

sudo tee /etc/profile.d/openssl.sh<<EOF
export PATH=/usr/local/openssl/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:\$LD_LIBRARY_PATH
EOF

重新加载 shell 环境:

source /etc/profile.d/openssl.sh

注销当前 shell 会话:

logout

重新登录并验证 OpenSSL 1.1.1 是否安装在 CentOS 7 / RHEL 7 上

$ which openssl
/usr/local/openssl/bin/openssl

$ openssl version
OpenSSL 1.1.1w  11 Sep 2023