FIPS 模式配置
FIPS 模式让系统只使用通过 FIPS 140-3 标准验证的加密算法模块(OpenSSL、GnuTLS、NSS、内核 crypto API 等)。它是美国联邦系统和许多金融、医疗合规场景的硬性要求。EL 系统内置了完整的 FIPS 支持,启用后由 crypto-policies 统一收口所有加密组件的策略。
FIPS 模式改变了什么
Section titled “FIPS 模式改变了什么”启用 FIPS 后:
- crypto-policies 切换到
FIPS子策略,OpenSSL、GnuTLS 等库自动禁用未验证算法(MD5、DES、RC4 等) - 内核 crypto API 进入 FIPS 模式,自检(self-test)在启动时执行
- 不合规的算法调用会直接报错,而不是悄悄降级
RHEL 8/9:用 fips-mode-setup 启用
Section titled “RHEL 8/9:用 fips-mode-setup 启用”$ sudo fips-mode-setup --enable$ sudo systemctl reboot$ fips-mode-setup --checkFIPS mode is enabled.$ update-crypto-policies --showFIPS如需关闭:
$ sudo fips-mode-setup --disable$ sudo systemctl rebootRHEL 10:改用内核参数启用
Section titled “RHEL 10:改用内核参数启用”RHEL 10 起 fips-mode-setup 已弃用,标准做法是设置 fips=1 内核启动参数:
$ sudo grubby --update-kernel=ALL --args="fips=1"$ sudo systemctl reboot$ cat /proc/sys/crypto/fips_enabled1$ update-crypto-policies --showFIPS在 AlmaLinux / Rocky Linux 上
Section titled “在 AlmaLinux / Rocky Linux 上”重建版包含与 RHEL 相同的 crypto-policies 与内核 FIPS 支持,启用方法一致。但注意:“已验证模块”以各发行版自家的 FIPS 验证状态为准——严格合规场景请先确认所用发行版的验证清单与范围,拿不准时直接用 RHEL(其验证状态有 Red Hat 官方背书)。
云与镜像场景
Section titled “云与镜像场景”- 主要云平台提供预启用 FIPS 的官方镜像(搜索 “FIPS” 镜像即可),新机直接合规
- 使用 Image Mode / bootc 时,在 Containerfile 中声明:
FROM registry.redhat.io/rhel10/rhel-bootc:latest
RUN mkdir -p /etc/kernel/cmdline.d && \ echo "fips=1" > /etc/kernel/cmdline.d/fips.conf && \ update-crypto-policies --set FIPS应用在 FIPS 下报错怎么办?
Section titled “应用在 FIPS 下报错怎么办?”典型报错如 digital envelope routines::unsupported——说明应用调用了未验证算法(MD5、旧 TLS 版本)。处理顺序:升级应用到支持 FIPS 的版本 > 调整应用配置改用合规算法 > 向 Red Hat/厂商反馈。不建议为了绕开报错改回 DEFAULT 策略,那会让整个系统失去合规状态。
FIPS 和 OpenSCAP 是什么关系?
Section titled “FIPS 和 OpenSCAP 是什么关系?”互为补充:OpenSCAP 用 CIS/PCI 等基线扫描系统配置;FIPS 是其中加密合规格子项的系统级实现。审计脚本常用 fips-mode-setup --check 判定。OpenSCAP 合规扫描可以覆盖这一项的自动化检查。
启用前要注意什么?
Section titled “启用前要注意什么?”- 在新系统或重启窗口内启用——切换涉及内核参数与自检,越早越好
- 先盘点业务依赖的加密库版本,老旧应用(JDK 8 早期版、旧 OpenSSL 绑定)最容易被卡
- 集群类系统(controller/worker)需要一次性全部切换,避免混跑
- OpenSCAP 合规扫描 — 用基线扫描自动化合规检查
- 新机上线基线清单 — FIPS 之外的通用加固项
- Image Mode (bootc) — 把 FIPS 声明进系统镜像