下面以 在 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
https://www.openssl.org/source/
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
⚠️ 建议校验 sha256(可选但推荐)
./config \
--prefix=/usr/local/openssl \
--openssldir=/usr/local/openssl \
shared zlib
参数说明:
--prefix:安装路径--openssldir:配置文件目录shared:编译动态库zlib:支持 zlib 压缩(需已安装 zlib)其他常见选项:
no-tests # 不编译测试
static # 只编译静态库
enable-ec_nistp_64_gcc_128
make -j$(nproc)
make test # 可选,验证编译正确性
sudo make install
echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
注意:
- OpenSSL 1.1.x →
lib- OpenSSL 3.x →
lib64
/usr/local/openssl/bin/openssl version
⚠️ 不推荐直接覆盖系统 openssl,可能影响系统工具(如 ssh、curl)。
更安全方式:
sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
或仅在需要时使用绝对路径。
openssl: error while loading shared librariesldconfig
或检查 LD_LIBRARY_PATH
--prefix./configure --with-openssl=/usr/local/openssl
./config --prefix=/usr/local/openssl111 shared
make -j$(nproc)
sudo make install
如果你有 具体系统版本 / OpenSSL 版本 / 使用场景(如给 Nginx、Python、curl 用),我可以给你更精确的编译方案。