You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用启用FIPS的自定义OpenSSL编译Python 3.6?

编译Python 3.6以链接启用FIPS的自定义OpenSSL

我来帮你梳理一下完整的操作步骤,确保Python能正确链接到你在/usr/local/ssl下的FIPS模式OpenSSL,同时避免和系统默认版本冲突:

1. 安装编译依赖

Ubuntu 16.04 LTS需要先装好Python编译所需的基础工具和依赖库,执行以下命令:

sudo apt-get update && sudo apt-get install build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev libffi-dev

2. 配置环境变量指向自定义OpenSSL

因为系统有默认OpenSSL,我们需要明确告诉编译器和Python去哪里找你的FIPS版本,先设置环境变量:

export LDFLAGS="-L/usr/local/ssl/lib"
export CPPFLAGS="-I/usr/local/ssl/include"
export LD_LIBRARY_PATH="/usr/local/ssl/lib:$LD_LIBRARY_PATH"

3. 执行configure并指定参数

这里要注意不要覆盖系统默认Python,所以把安装前缀设为独立目录,同时用--with-openssl指定你的自定义OpenSSL路径:

./configure --enable-shared --prefix=/usr/local/python36-fips --with-openssl=/usr/local/ssl

提示:--enable-shared确保生成共享库,--prefix指定安装目录,避免干扰系统自带Python;--with-openssl是关键参数,直接让Python关联你的FIPS版本OpenSSL。

4. 编译并安装

用多线程编译加快速度(-j4根据你的CPU核心数调整,比如8核就用-j8),然后用altinstall避免替换系统默认Python:

make -j4
sudo make altinstall

5. 验证编译结果

检查OpenSSL链接情况

运行新安装的Python,验证是否关联了正确的OpenSSL版本:

/usr/local/python36-fips/bin/python3.6

在Python交互环境中执行:

import ssl
print(ssl.OPENSSL_VERSION)
# 测试你新增的FIPS函数
print(ssl.FIPS_mode())

如果输出显示OpenSSL 1.0.2h,说明链接成功;之后可以测试ssl.FIPS_mode_set(1)来开启FIPS模式,再用ssl.FIPS_mode()验证是否生效。

解决库加载问题

如果运行Python时提示找不到libssl.so.1.0.0或libcrypto.so.1.0.0,可以把自定义OpenSSL的库目录加入系统动态链接配置:

echo "/usr/local/ssl/lib" | sudo tee /etc/ld.so.conf.d/openssl-fips.conf
sudo ldconfig

内容的提问来源于stack exchange,提问作者Hussain Ali Akbar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:30:40