怎么在Apache中配置SSLFips指令实现符合FIPS标准的安全加固

浅涛同学_1857

浅涛同学_1857

2026-05-05

727人浏览

原创

sslfips指令形同虚设,因其仅向openssl发送无效信号,不触发fips验证逻辑;现代openssl≥3.0完全忽略该指令,且apache未集成fips模块加载与自检机制。

怎么在apache中配置sslfips指令实现符合fips标准的安全加固

Apache 2.4 中的 SSLFIPS 指令在绝大多数实际部署中根本不会生效,也不该被依赖 —— 它只是个空壳开关,不触发任何 OpenSSL FIPS 验证逻辑。

为什么 SSLFIPS 指令形同虚设

Apache 的 mod_ssl 在 2.4 版本中保留了 SSLFIPS on 这个配置项,但它的作用仅限于:向 OpenSSL 发送一个「请尝试启用 FIPS 模块」的信号。而现代 OpenSSL(≥3.0)根本不认这个信号;OpenSSL 1.0.2 及更早版本虽能识别,但 Apache 并未集成 FIPS 对象模块(fips.so)加载机制,也未校验 FIPS 模块完整性或执行运行时自检。

常见错误现象:SSLFIPS on 配置后重启 Apache 成功,openssl s_client -connect localhost:443 显示 TLS 握手正常,但 openssl fipsinstall -verify 或 openssl list -fips 会明确返回「FIPS provider not loaded」——说明底层根本没有进入 FIPS 模式。

  • 该指令对 OpenSSL 3.0+ 完全无响应,SSLFIPS 设置与否不影响 openssl version -fips 输出
  • 即使 OpenSSL 编译时启用了 enable-fips,Apache 仍需手动加载 fipsmodule.cnf 并设置 OPENSSL_CONF 环境变量,SSLFIPS 不参与此过程
  • Red Hat/CentOS/RHEL 系统中,mod_ssl 包默认链接的是系统 OpenSSL(如 RHEL 9 的 OpenSSL 3.0),但其 FIPS 模块由 openssl-fips-provider 单独提供,需显式启用

真正让 Apache 进入 FIPS 模式的三步硬要求

绕过 SSLFIPS,必须从 OpenSSL 运行时环境入手。缺一不可:

  • 使用已安装并验证过的 FIPS 兼容 OpenSSL 3.0+(例如通过 openssl fipsinstall -verify 确认)
  • 确保 Apache 启动时能读取到含 .include fipsmodule.cnf 的 openssl.cnf,且该 fipsmodule.cnf 由 openssl fipsinstall 生成、绑定到具体 fips.so 路径
  • Apache 进程启动前必须设置 OPENSSL_CONF=/path/to/openssl.cnf(不能只靠 SSLCertificateFile 等指令间接触发)

示例关键操作(以 RHEL 9 为例):

SSL Certificate Monitor
SSL Certificate Monitor

检查一个或多个域名的 SSL/TLS 证书到期时间、颁发者、协议及 SAN 信息,用于应要求检查证书、监控到期或验证 HTTPS 等场景。

下载
sudo cp /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf.bak
sudo sed -i 's@# .include /etc/pki/tls/fipsmodule.cnf@.include /etc/pki/tls/fipsmodule.cnf@' /etc/pki/tls/openssl.cnf
echo 'export OPENSSL_CONF=/etc/pki/tls/openssl.cnf' | sudo tee /etc/profile.d/openssl-fips.sh
sudo chmod +x /etc/profile.d/openssl-fips.sh

然后重启 httpd 前,确认 env | grep OPENSSL_CONF 已生效。

SSLProtocol 和 SSLCipherSuite 必须严格过滤非 FIPS 算法

即使 OpenSSL 进入了 FIPS 模式,Apache 若未限制协议和密码套件,仍可能协商出非 FIPS 允许的算法(如 RC4、MD5、SHA1、TLSv1.0)。FIPS 140-2 明确禁止这些。

  • 禁用所有弱协议:SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1(只留 TLSv1.2 或 TLSv1.3;注意:FIPS 当前不支持 TLSv1.3,见 Netcool/Impact 文档注释)
  • FIPS 认可的密码套件极有限,典型安全写法:SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
  • 务必加 SSLHonorCipherOrder on,否则客户端优先级可能绕过服务端限制

验证是否生效:用 openssl s_client -connect localhost:443 -cipher @SECLEVEL=2 测试,若返回 ssl handshake failed,说明有非 FIPS 密码被意外启用。

集群或容器环境中最容易忽略的点

FIPS 不是「配一次就全局生效」的开关。每个 Apache 实例(包括负载均衡后的后端节点、容器副本、systemd --user 服务)都必须独立满足上述三项条件。

  • Docker 镜像中未 ENV OPENSSL_CONF 或未复制 fipsmodule.cnf → 容器内 OpenSSL 不进 FIPS 模式
  • systemd 启动 Apache 时未在 [Service] 段落中写 Environment=OPENSSL_CONF=... → 环境变量丢失
  • SELinux 启用时,fips.so 文件可能被阻止加载,audit2why -a 会显示 avc: denied { execute } 类型拒绝

最稳妥的验证方式不是看 Apache 日志,而是直接在运行中的 Apache 进程里查 OpenSSL 状态:sudo gdb -p $(pgrep httpd) -ex "p (char*)SSL_get_version((SSL*)0)" --batch 2>/dev/null | grep -q "TLS" && echo "OK" || echo "FIPS not active" —— 这只能说明 TLS 在用,真正要确认 FIPS,得进进程用 call SSL_CTX_set_options(ctx, SSL_OP_FIPS) 并检查返回值,实操中建议改用 openssl version -fips 搭配进程环境变量快照。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3032

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

996

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

909

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2756

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5152

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

807

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
零基础精通 PS 视频教程
零基础精通 PS 视频教程

共268课时 | 120万人学习

前端工程师必备技能—PS切图
前端工程师必备技能—PS切图

共11课时 | 2.2万人学习

麦子学院Photoshop切片视频教程
麦子学院Photoshop切片视频教程

共13课时 | 4.3万人学习