一、前言
介绍 CentOS7 源码编译安装 openssl 的过程。
开源地址:https://github.com/openssl/openssl
当前最新版本:OpenSSL 3.5.1(2025/7/5)
主要用途(场景):Python 3.11+ 编译
二、安装
1、编译安装
下载最新的源码包 openssl-3.5.1.tar.gz,上传到 CentOS7
tar -xzvf openssl-3.5.1.tar.gz
cd /usr/local/openssl-3.5.1
# 配置 openssl 的编译和安装选项。以下指令取之于 github 官方文档
./Configure --prefix=/usr/local/ssl --openssldir=/usr/local/ssl \
'-Wl,-rpath,$(LIBRPATH)'
# 编译
make clean && make
# 安装
make install
--prefix=/usr/local/ssl:openssl 的安装目录
--openssldir:ssl 数据文件和配置文件的存放目录。配置文件有 openssl.cnf 等;数据文件有证书、密钥等。
'-Wl,-rpath,$(LIBRPATH)':这部分是一个链接器选项,用于指定运行时库的搜索路径。
-WL
是 GCC 编译器的一个选项,用于将后续的参数传递给链接器(ld)-rpah
是链接器的一个选项,用于指定运行时库的搜索路径。当程序运行时,动态链接器会在这个路径中查找所需的共享库。${LIBRPATH}:这是一个变量,通常在配置脚本中定义,表示库文件的路径。会在配置过程中被替换成实际的路径。
这种配置方式通常用于自定义安装路径,避免与系统默认安装的 OpenSSL 冲突,同时确保程序能够正确链接和运行。
2、软链接
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
3、验证
openssl version
4、卸载
# 删除安装目录
rm -rf /usr/local/ssl
# 删除软链接(可选)
rm -f /usr/bin/openssl
三、可能遇到的问题
1、缺少 Perl 模块
# 编译报错
Can't locate IPC/Cmd.pm in @INC (@INC contains: /usr/local/openssl-3.5.1/
# 安装 Perl 模块
yum install perl-IPC-Cmd