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

ubi8-minimal镜像下OpenShift部署React应用报FIPS禁用错误

报错信息

在OpenShift平台使用RedHat ubi8-minimal基础镜像部署React应用时,触发如下错误:
Error: error:060800C8:digital envelope routines:EVP_DigestInit_ex:disabled for FIPS

问题根因
  • RedHat ubi8-minimal镜像默认适配宿主机(OpenShift节点)的FIPS(联邦信息处理标准)合规模式,该模式下OpenSSL会禁用所有未纳入FIPS核准列表的加密、哈希算法。
  • React项目构建常用的工具链(react-scripts、Webpack、Vite等)默认会使用MD4、MD5等非FIPS合规的哈希算法生成静态资源chunk哈希、缓存标识,Node.js调用OpenSSL相关接口时会被FIPS规则拦截,抛出该错误。
  • 若使用官网通用二进制包、nvm安装的Node.js,未经过RHEL FIPS适配,会进一步提升该问题的触发概率。注意:手动修改镜像内/etc/ssl/openssl.cnf配置无法关闭FIPS,ubi8的FIPS状态由宿主机内核参数控制,镜像内配置修改不生效。
修复方案

按照优先级从高到低可选择以下方案:

方案1:适配FIPS合规要求(推荐,适用于强制FIPS的集群)

将构建工具的哈希算法替换为FIPS核准的SHA256算法,从根源规避非合规算法调用:

  • 若为CRA(react-scripts)创建的项目,可通过craco/react-app-rewired修改Webpack配置:
// craco.config.js
module.exports = {
  webpack: {
    configure: (config) => {
      config.output.hashFunction = 'sha256';
      return config;
    }
  }
}
  • 若为Vite创建的React项目,修改rollup构建配置即可:
// vite.config.js
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
  build: {
    rollupOptions: {
      output: {
        entryFileNames: `assets/[name]-[sha256:hash].js`,
        chunkFileNames: `assets/[name]-[sha256:hash].js`,
        assetFileNames: `assets/[name]-[sha256:hash].[ext]`
      }
    }
  }
});

同时建议使用ubi8官方源提供的适配过FIPS的Node.js包,不要使用第三方安装的Node版本:

# Dockerfile内安装Node示例
microdnf install -y nodejs:18/minimal
microdnf clean all

方案2:临时关闭Node层FIPS校验(适用于无强制FIPS要求的集群)

若集群本身未强制开启FIPS,可通过Node环境变量关闭FIPS校验,在构建和运行阶段都添加如下环境变量:

# Dockerfile内配置
ENV NODE_OPTIONS="--no-fips"
# 构建命令执行前会自动加载该参数
RUN npm ci && npm run build

注意:如果OpenShift节点本身在内核层面开启了FIPS,该方案无效,必须使用方案1调整算法配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 00:16:12