下面分 Debian 系统上从源码编译 OpenSSL 的常见做法,适用于想升级 OpenSSL、或需要自定义编译参数的情况。
先安装必要的依赖:
sudo apt update
sudo apt install -y build-essential checkinstall \
zlib1g-dev libssl-dev pkg-config
如果你只是编译 OpenSSL,不依赖系统已有 libssl,
libssl-dev可装可不装。
cd /usr/local/src
sudo mkdir openssl && cd openssl
sudo wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
sudo tar -xzf openssl-3.2.1.tar.gz
cd openssl-3.2.1
可到 https://www.openssl.org/source/ 查看最新版本
./Configure \
--prefix=/usr/local/openssl \
--openssldir=/usr/local/openssl \
shared \
zlib
说明:
| 参数 | 作用 |
|---|---|
--prefix |
安装目录 |
--openssldir |
OpenSSL 配置目录 |
shared |
编译动态库(libssl.so / libcrypto.so) |
zlib |
启用压缩支持 |
./Configure --help
make -j$(nproc)
sudo make install
-j$(nproc)可加快编译速度
⚠️ 不要直接覆盖系统 OpenSSL(/usr/bin/openssl)
echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
如果是
lib而不是lib64,改成/usr/local/openssl/lib
临时使用:
/usr/local/openssl/bin/openssl version
或加入 PATH(推荐):
echo 'export PATH=/usr/local/openssl/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
openssl version
输出示例:
OpenSSL 3.2.1 30 Jan 2024
可能导致:
✅ 正确做法:并行安装,不覆盖系统 OpenSSL
./configure --with-openssl=/usr/local/openssl
或在 CMake 中:
-DOPENSSL_ROOT_DIR=/usr/local/openssl
sudo rm -rf /usr/local/openssl
sudo rm /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
如果你愿意,可以告诉我:
我可以给你 更精确的方案。