下面给你一份在 Linux 下从源码编译安装 OpenSSL的完整流程,适用于 OpenSSL 1.1.1 和 3.x 系列。
# 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 version
cd /usr/local/src
wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
可到官网查看最新版本:https://www.openssl.org/source/
tar -zxvf openssl-3.2.1.tar.gz
cd openssl-3.2.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
make -j$(nproc)
sudo make install
echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
如果是 32 位系统:
/usr/local/openssl/lib
echo 'export PATH=/usr/local/openssl/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
which openssl
openssl version
输出示例:
OpenSSL 3.2.1 30 Jan 2024
这是正常的,系统工具(如 ssh、curl)可能仍链接旧版本。
查看链接情况:
ldd $(which openssl)
不建议直接覆盖 /usr/bin/openssl,可能导致系统不稳定。
如必须:
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
常见原因:
zlib-develsudo 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
如果你告诉我:
我可以给你更精确的方案。