温馨提示×

如何编译linux openssl源码

小樊
35
2026-09-22 20:35:57
栏目: 云计算

下面以 在 Linux 上从源码编译 OpenSSL 为例,给你一个通用、可操作的步骤说明(以 OpenSSL 1.1.1 / 3.x 为例,适用于 Ubuntu / CentOS / Debian 等)。


一、准备编译环境

1. 安装基础编译工具

# Ubuntu / Debian
sudo apt update
sudo apt install -y build-essential gcc make perl

# CentOS / RHEL
sudo yum groupinstall -y "Development Tools"
sudo yum install -y perl

二、下载 OpenSSL 源码

官方地址

https://www.openssl.org/source/

cd /usr/src
wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
tar -xzf openssl-3.2.1.tar.gz
cd openssl-3.2.1

⚠️ 建议校验 sha256(可选但推荐)


三、配置编译选项(重要)

常用配置示例

./config \
  --prefix=/usr/local/openssl \
  --openssldir=/usr/local/openssl \
  shared zlib

参数说明:

  • --prefix:安装路径
  • --openssldir:配置文件目录
  • shared:编译动态库
  • zlib:支持 zlib 压缩(需已安装 zlib)

其他常见选项:

no-tests        # 不编译测试
static         # 只编译静态库
enable-ec_nistp_64_gcc_128

四、编译与安装

make -j$(nproc)
make test       # 可选,验证编译正确性
sudo make install

五、配置系统使用新 OpenSSL

1. 更新动态库路径

echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig

注意:

  • OpenSSL 1.1.x → lib
  • OpenSSL 3.x → lib64

2. 验证版本

/usr/local/openssl/bin/openssl version

3.(可选)替换系统 openssl

⚠️ 不推荐直接覆盖系统 openssl,可能影响系统工具(如 ssh、curl)。

更安全方式:

sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

或仅在需要时使用绝对路径。


六、常见问题

1. openssl: error while loading shared libraries

ldconfig

或检查 LD_LIBRARY_PATH


2. 多版本共存

  • 编译时指定不同 --prefix
  • 使用绝对路径调用

3. 给程序指定 OpenSSL

./configure --with-openssl=/usr/local/openssl

七、示例:编译 OpenSSL 1.1.1(仍常见)

./config --prefix=/usr/local/openssl111 shared
make -j$(nproc)
sudo make install

如果你有 具体系统版本 / OpenSSL 版本 / 使用场景(如给 Nginx、Python、curl 用),我可以给你更精确的编译方案。

0 踩