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

Node 16.13(OpenSSL 3.0.0)开启FIPS模式报OpenSSL错误如何解决

解决方案

你遇到的报错核心原因是OpenSSL 3.0.x的FIPS提供者需要额外的配置文件和自检段配置,Node官方BUILDING.md的默认编译指引没有覆盖OpenSSL 3.0的FIPS配置步骤,按以下流程操作即可修复:

步骤1:确认编译时已正确嵌入FIPS提供者

首先确保你编译Node的时候加了正确的编译参数,检查编译配置是否包含以下参数:

./configure --openssl-fips --shared-openssl

如果是用静态编译内置OpenSSL的方式,要确认编译过程中OpenSSL的FIPS模块已经被正确编译进Node的二进制依赖中。

步骤2:生成FIPS配置文件

你需要手动生成OpenSSL 3.0的FIPS配置文件,操作命令如下:

# 首先进入你编译Node时用到的OpenSSL 3.0.0源码的fips子目录
cd openssl-3.0.0/providers/fips
# 生成fipsmodule.cnf配置文件
openssl fipsinstall -out /path/to/your/fipsmodule.cnf -module ./fips.so
# 注意Windows平台模块路径替换为fips.dll,macOS替换为fips.dylib

步骤3:配置全局OpenSSL配置文件

创建或者修改你的openssl.cnf文件,添加以下内容:

config_diagnostics = 1
openssl_conf = openssl_init

[openssl_init]
providers = provider_sect

[provider_sect]
fips = fips_sect
base = base_sect

[base_sect]
activate = 1

[fips_sect]
activate = 1
fips-module-config = fips_config

[fips_config]
install-version = 1
module-name = fips
install-mac = 【这里替换成你执行fipsinstall命令时输出的HMAC校验值】
module-path = /path/to/your/fips.so

步骤4:指定配置文件路径启动Node

启动Node的时候通过环境变量指定OpenSSL配置文件路径:

OPENSSL_CONF=/path/to/your/openssl.cnf node --enable-fips -p 'crypto.getFips()'

正常情况下会输出1,代表FIPS模式已经成功启用。

额外注意事项

  • Node 16.13内置的OpenSSL 3.0.0存在多个FIPS相关的已知bug,如果配置完还是报错,建议升级到Node 16.20+版本,该版本更新了内置OpenSSL的小版本,修复了FIPS自检的多个问题
  • 生产环境使用FIPS模式需要确保你使用的OpenSSL FIPS模块已经通过了对应平台的FIPS 140-2/140-3认证,避免合规风险

内容的提问来源于stack exchange,提问作者markobugbg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:45:08