温馨提示×

如何编译linux openssl

小樊
39
2026-09-13 17:03:50
栏目: 云计算

下面按常见场景给你讲清楚如何在 Linux 上编译 OpenSSL。以 OpenSSL 3.x(目前主流)为例,2.1.x 思路类似但参数略有不同。


一、准备环境

1. 安装编译依赖

# 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

二、下载 OpenSSL 源码

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

编译时间取决于机器性能(几分钟到十几分钟)


五、配置系统使用新 OpenSSL

1. 设置动态库路径

echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig

2. 验证版本

/usr/local/openssl/bin/openssl version

六、替换系统 openssl(谨慎)

⚠️ 不建议直接覆盖系统 openssl,可能导致系统命令失效

推荐方式:

  • 使用绝对路径调用
  • 或在用户环境中加 PATH
export PATH=/usr/local/openssl/bin:$PATH

七、常见问题

1. openssl: error while loading shared libraries

ldconfig

确认 libssl.so 路径已加入


2. 老程序依赖系统 OpenSSL

可用:

LD_LIBRARY_PATH=/usr/local/openssl/lib64 ./your_app

3. 编译 Python / Nginx 使用新 OpenSSL

  • 编译时指定:
--with-openssl=/usr/local/openssl

八、快速总结

./Configure linux-x86_64 --prefix=/usr/local/openssl shared zlib
make -j$(nproc)
make install
ldconfig

如果你告诉我:

  • 系统版本(Ubuntu / CentOS / 麒麟等)
  • 用途(Python / Nginx / curl / 嵌入式)
  • 是否要 静态编译

我可以给你完全定制化的编译命令

0