下面按常见场景给你讲清楚如何在 Linux 上编译 OpenSSL。以 OpenSSL 3.x(目前主流)为例,2.1.x 思路类似但参数略有不同。
# Debian / Ubuntu
sudo apt update
sudo apt install -y build-essential gcc make perl pkg-config zlib1g-dev
# CentOS / Rocky / Alma
sudo yum groupinstall -y "Development Tools"
sudo yum install -y perl-core zlib-devel
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
可去 https://www.openssl.org/source/ 查看最新版本
./Configure \
linux-x86_64 \
--prefix=/usr/local/openssl \
--openssldir=/usr/local/openssl \
shared zlib
说明:
linux-x86_64:目标平台--prefix:安装目录shared:编译动态库zlib:支持压缩其他常见选项:
no-tests # 不编译测试(加快)
enable-ssl3 # 不推荐
disable-docs # 不生成文档
make -j$(nproc)
make install
编译时间取决于机器性能(几分钟到十几分钟)
echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig
/usr/local/openssl/bin/openssl version
⚠️ 不建议直接覆盖系统 openssl,可能导致系统命令失效
推荐方式:
export PATH=/usr/local/openssl/bin:$PATH
openssl: error while loading shared librariesldconfig
确认 libssl.so 路径已加入
可用:
LD_LIBRARY_PATH=/usr/local/openssl/lib64 ./your_app
--with-openssl=/usr/local/openssl
./Configure linux-x86_64 --prefix=/usr/local/openssl shared zlib
make -j$(nproc)
make install
ldconfig
如果你告诉我:
我可以给你完全定制化的编译命令。