Ubuntu 18.04下OpenSSL配置FIPS 140-2失败求助
解决Ubuntu 18.04下OpenSSL 3.x结合FIPS 140-2的配置问题
你的核心问题在于OpenSSL 3.x和旧版fips-2.0.16模块不兼容——OpenSSL 3.0+采用了全新的FIPS Provider架构,而openssl-fips-2.0.16是为OpenSSL 1.0.x系列设计的,两者无法配合工作。以下是正确的配置步骤:
1. 清理现有错误安装
先移除之前装的OpenSSL和旧FIPS模块,避免冲突:
- 进入openssl-3.1.0目录执行:
make uninstall rm -rf /usr/local/ssl - 进入openssl-fips-2.0.16目录执行:
make uninstall rm -rf /root/openssl-fips-2.0.16 - 清除相关环境变量:
unset OPENSSL_FIPS
2. 下载适配OpenSSL 3.1.x的FIPS Provider
OpenSSL 3.1.x需要搭配OpenSSL FIPS Provider 3.0.x(如3.0.9,与3.1.0兼容),下载对应版本的源码包。
3. 编译安装FIPS Provider
解压源码包后执行:
./config --prefix=/usr/local/ssl-fips make make install
4. 编译安装带FIPS支持的OpenSSL 3.1.0
进入openssl-3.1.0源码目录,配置时指定FIPS模块路径:
./config --prefix=/usr/local/ssl enable-fips --with-fipsdir=/usr/local/ssl-fips make make install
5. 配置环境变量并验证
设置系统优先使用新安装的OpenSSL:
export PATH=/usr/local/ssl/bin:$PATH export LD_LIBRARY_PATH=/usr/local/ssl/lib:$LD_LIBRARY_PATH
执行验证命令,此时应显示FIPS相关信息:
openssl version -a
正确输出会包含类似FIPS mode: enabled或FIPS模块的加载路径。
6. 生成FIPS合规随机密钥(替代旧命令)
OpenSSL 3.x已移除rand -fips选项,改用以下两种方式:
方式1:临时指定FIPS Provider执行命令
openssl rand 32 -provider fips > aes_key.bin
方式2:全局启用FIPS模式(永久生效)
编辑/usr/local/ssl/openssl.cnf,替换或添加以下配置:
[openssl_init] providers = provider_sect [provider_sect] fips = fips_sect base = base_sect [fips_sect] activate = 1 module = /usr/local/ssl-fips/lib/ossl-modules/fips.so [base_sect] activate = 1
之后直接执行openssl rand 32 > aes_key.bin即可生成FIPS合规密钥。
内容的提问来源于stack exchange,提问作者rahuls_
相关产品推荐
相关产品推荐

