温馨提示×

Linux openssl怎么编译安装

小樊
50
2026-08-25 07:39:42
栏目: 云计算

下面给你一份在 Linux 下从源码编译安装 OpenSSL的完整流程,适用于 OpenSSL 1.1.1 和 3.x 系列。


一、准备环境

1. 安装编译依赖

# CentOS / Rocky / Alma
sudo yum install -y gcc make perl zlib-devel

# Ubuntu / Debian
sudo apt update
sudo apt install -y build-essential libz-dev perl

二、下载 OpenSSL 源码

1. 查看当前系统 OpenSSL 版本

openssl version

2. 下载源码(示例)

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

可到官网查看最新版本:https://www.openssl.org/source/

3. 解压

tar -zxvf openssl-3.2.1.tar.gz
cd openssl-3.2.1

三、编译安装 OpenSSL

1. 配置编译参数

./Configure \
--prefix=/usr/local/openssl \
--openssldir=/usr/local/openssl \
zlib

常用参数说明:

参数 说明
--prefix 安装目录
--openssldir 配置文件目录
zlib 启用 zlib 支持
shared 编译动态库(建议加)
no-shared 只编译静态库

✅ 推荐加 shared

./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib

2. 编译(耗时较长)

make -j$(nproc)

3. 安装

sudo make install

四、配置系统使用新 OpenSSL

1. 配置动态库

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

如果是 32 位系统:

/usr/local/openssl/lib

2. 配置环境变量

echo 'export PATH=/usr/local/openssl/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

3. 验证

which openssl
openssl version

输出示例:

OpenSSL 3.2.1 30 Jan 2024

五、常见问题

❓ 1. 系统自带 openssl 没变?

这是正常的,系统工具(如 ssh、curl)可能仍链接旧版本。

查看链接情况:

ldd $(which openssl)

❓ 2. 想替换系统 OpenSSL(⚠ 不推荐)

不建议直接覆盖 /usr/bin/openssl,可能导致系统不稳定。

如必须:

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

❓ 3. 编译报错

常见原因:

  • 没装 zlib-devel
  • 系统 perl 版本过低
  • 内存不足(make 时)

六、卸载(可选)

sudo rm -rf /usr/local/openssl
sudo rm /etc/ld.so.conf.d/openssl.conf
sudo ldconfig

七、总结流程(速查版)

yum install -y gcc make perl zlib-devel
wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
tar -zxvf openssl-3.2.1.tar.gz
cd openssl-3.2.1
./Configure --prefix=/usr/local/openssl shared zlib
make -j$(nproc)
sudo make install
echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
export PATH=/usr/local/openssl/bin:$PATH

如果你告诉我:

  • ✅ Linux 发行版
  • ✅ 要装 OpenSSL 1.1.1 还是 3.x
  • ✅ 是为了 Nginx / Python / curl / 编译软件

我可以给你更精确的方案

0