下面给你一个在 Linux 下从源码编译并安装 OpenSSL的完整流程,适用于大多数发行版(CentOS / Rocky / Alma / Ubuntu / Debian 等)。
# CentOS / Rocky / Alma
yum groupinstall -y "Development Tools"
yum install -y perl wget make gcc
# Ubuntu / Debian
apt update
apt install -y build-essential libssl-dev perl wget
openssl version
以 OpenSSL 3.0.x(长期支持)为例:
cd /usr/local/src
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
如需 1.1.1 系列:
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxvf openssl-3.0.13.tar.gz
cd openssl-3.0.13
./Configure --prefix=/usr/local/openssl \
--openssldir=/usr/local/openssl \
shared \
zlib
参数说明:
--prefix:安装目录--openssldir:配置文件目录shared:生成动态库(libssl.so / libcrypto.so)zlib:启用压缩支持make -j$(nproc)
make install
编译时间较长,耐心等待
echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig
如果是 32 位系统或 1.1.1 版本,可能是
lib而不是lib64
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
openssl version
输出示例:
OpenSSL 3.0.13 30 Jan 2024
openssl: error while loading shared libraries解决:
ldconfig
指定路径:
--with-openssl=/usr/local/openssl
系统工具(如 yum)依赖旧版 OpenSSL,建议:
/usr/local/openssl/usr/bin/opensslrm -rf /usr/local/openssl
rm /etc/ld.so.conf.d/openssl.conf
ldconfig
yum install -y gcc make perl wget
cd /usr/local/src
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
tar -zxvf openssl-3.0.13.tar.gz
cd openssl-3.0.13
./Configure --prefix=/usr/local/openssl shared zlib
make -j$(nproc)
make install
echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
openssl version
如果你告诉我:
我可以给你更精确的编译参数。