下面以 Linux(常见发行版,如 Ubuntu / CentOS / Rocky / Alma 等) 为例,介绍 从源码编译安装 OpenSSL 的完整步骤。
示例以 OpenSSL 3.x(推荐) 为主,同时说明 1.1.1 的区别。
sudo apt update
sudo apt install -y build-essential \
checkinstall \
zlib1g-dev \
libssl-dev \
wget \
make \
gcc
sudo yum groupinstall -y "Development Tools"
sudo yum install -y \
zlib-devel \
wget \
perl \
gcc \
make
推荐从官网下载:
cd /usr/local/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
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
/usr/local/openssl)./Configure \
--prefix=/usr/local/openssl \
--openssldir=/usr/local/openssl \
shared \
zlib
说明:
--prefix:OpenSSL 安装目录shared:编译动态库(非常重要)zlib:支持压缩no-weak-ssl-ciphers
no-ssl3
no-tls1
make -j$(nproc)
sudo make install
⚠️ 编译时间长取决于 CPU,一般 3–10 分钟
echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
如果是 32 位系统或
lib,改为lib
echo 'export PATH=/usr/local/openssl/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
openssl version
✅ 输出示例:
OpenSSL 3.2.1 30 Jan 2024
查看库路径:
which openssl
ldd $(which openssl)
原因:系统 /usr/bin/openssl 优先级更高
解决:
sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
⚠️ 不推荐覆盖系统 OpenSSL(可能影响系统工具)
指定路径:
--with-openssl=/usr/local/openssl
sudo rm -rf /usr/local/openssl
sudo rm /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
./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
如果你需要:
可以告诉我你的具体使用场景,我可以给你更精确的方案。