温馨提示×

怎么编译linux openssl

小樊
36
2026-09-16 18:07:11
栏目: 云计算

下面给你一个在 Linux 上从源码编译 OpenSSL 的完整、常用流程(以 OpenSSL 1.1.1 / 3.x 为例,适用于 Ubuntu / CentOS / Debian 等)。


一、准备编译环境

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 源码

官方下载(推荐)

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

可去 https://www.openssl.org/source/ 查看最新版本


三、配置编译参数

常见配置(安装到 /usr/local/openssl

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

参数说明:

  • --prefix:安装目录
  • shared:生成动态库(.so)
  • zlib:启用 zlib 压缩支持
  • 如需只编译静态库:no-shared

四、编译并安装

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

2. 验证版本

/usr/local/openssl/bin/openssl version

输出示例:

OpenSSL 3.2.1 30 Jan 2024

六、替换系统 openssl(可选,有风险)

不推荐直接覆盖系统 openssl(可能影响系统工具)

如确实需要:

sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

七、常见问题

1. openssl: error while loading shared libraries

sudo ldconfig

或检查 LD_LIBRARY_PATH

2. 编译很慢

make -j$(nproc)

3. 需要 FIPS

./config fips --prefix=...

八、快速示例(最小化)

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
./config
make
sudo make install

如果你告诉我:

  • Linux 发行版(Ubuntu/CentOS?)
  • OpenSSL 版本(1.1.1 / 3.x?)
  • 编译目的(替换系统 / 给程序用 / 交叉编译)

我可以给你更精确的命令

0