news 2026/9/14 4:42:05

Envoy 在 Windows 上的 FIPS 支持现状:原因、官方立场与替代方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Envoy 在 Windows 上的 FIPS 支持现状:原因、官方立场与替代方案

Envoy 在 Windows 上的 FIPS 支持现状:原因、官方立场与替代方案

【免费下载链接】envoyCloud-native high-performance edge/middle/service proxy项目地址: https://gitcode.com/GitHub_Trending/en/envoy

Envoy 是一款云原生高性能边缘/中间/服务代理,其 TLS 能力默认由 BoringSSL 提供。本文围绕官方 FAQ 中"Envoy 在 Windows 上是否支持 FIPS"这一问题,说明为什么 Windows 平台不提供 FIPS 模式、Envoy 项目当前的 Windows 官方支持状态,以及在受支持平台上构建 FIPS 版本 Envoy 的具体方法,帮助有合规需求的读者正确规划部署方案。

结论先行:Envoy 在 Windows 上不支持 FIPS

根据官方 FAQ 文档 win_fips_support.rst,答案是明确的:Envoy 在 Windows 上不提供 FIPS 支持。原因链可以概括为两点:

  1. BoringSSL 没有 Windows 上的 FIPS 模式。Envoy 使用 BoringSSL 作为其精简版 TLS 实现,而截至该文档编写时,BoringSSL 并不支持在 Windows 上启用 FIPS 模式。
  2. 由于默认 TLS 库在该平台上无法以 FIPS 模式运行,Envoy 自然也无法在 Windows 上提供 FIPS 能力。

此外,该 FAQ 顶部还嵌入了 Windows 支持状态声明(见下文"官方 Windows 支持状态"一节),进一步强化了这一结论的现实意义。

背景:为什么 Envoy 使用 BoringSSL

Envoy 的 SSL 库配置说明见 bazel/SSL.md:Envoy 默认使用BoringSSL作为 SSL 库,同时构建系统也支持将OpenSSL作为替代方案。BoringSSL 是 Google 维护的精简版 TLS 实现,Envoy 之所以默认选择它,是因为其精简的代码面、与 Chromium 生态对齐的安全修复节奏,以及静态链接带来的部署便利性。

由于默认 SSL 实现是 BoringSSL,Envoy 的 FIPS 能力就取决于 BoringSSL 自身在目标平台上的 FIPS 支持情况。这正是 Windows 上无法提供 FIPS 的根因所在。

技术佐证:Envoy 的 FIPS 构建被明确限定在 Linux

仓库中的 FIPS 构建脚本进一步印证了"FIPS 与 Windows 无关"的事实。查看 bazel/external/boringssl_fips.genrule_cmd,其开头的平台检查逻辑如下:

OS=$(uname) ARCH=$(uname -m) # This works only on Linux-x86_64 and Linux-aarch64. if [[ "$OS" != "Linux" || ("$ARCH" != "x86_64" && "$ARCH" != "aarch64") ]]; then echo "ERROR: BoringSSL FIPS is currently supported only on Linux-x86_64 and Linux-aarch64." >&2 exit 1 fi

也就是说,Envoy 的 BoringSSL-FIPS 构建流程在构建期就硬性校验运行平台必须为Linux,且架构必须是x86_64 或 aarch64,其他平台(包括 Windows)会直接构建失败。该脚本内部完成了以下 FIPS 关键流程:

  • 使用与 Envoy 其余部分相同的 LLVM 工具链,以cmake -DFIPS=1方式编译 BoringSSL;
  • 构建完成后通过bssl isfips校验产物确实处于 FIPS 模式(validate_fips函数要求输出必须为1);
  • 将编译产物libcrypto.alibssl.a输出到 Bazel 期望的路径,供 Envoy 静态链接。

这一脚本从构建体系层面确认:FIPS 支持是 Linux 平台的专属能力,Windows 既无 BoringSSL FIPS 支持,也无法通过 Envoy 构建脚本产出 FIPS 二进制。

官方 Windows 支持状态:2023 年已结束

FAQ 顶部嵌入的声明位于 docs/root/_include/windows_support_ended.rst,内容如下:

2023 年 8 月 31 日,Envoy 项目因资源不足结束了 Windows 的官方支持。项目仍会接受与 Windows 构建相关的补丁,但在另行通知之前,Windows 构建已被排除在 Envoy CI、发布流程和安全流程之外。

这对 FIPS 问题的现实影响是双重的:

  • FIPS 需求本就无法在 Windows 上满足(BoringSSL 无 Windows FIPS 模式);
  • 即使排除 FIPS,Windows 也已不再是官方支持平台,不在 Envoy 的安全与发布流程覆盖范围内。

因此,在 Windows 上运行 Envoy 并期望 FIPS 合规,在当前状态下既不可行也不被官方保障。FAQ 文档末尾也建议:如果 FIPS 是硬性需求,请联系 Envoy 贡献者社区沟通

替代方案:在受支持的平台上启用 FIPS

如果你的 FIPS 需求真实存在,正确的路径是在官方支持的 Linux 平台上构建 FIPS 版本 Envoy,而不是停留在 Windows 上。

构建 BoringSSL-FIPS 版本

根据 bazel/SSL.md,在 Linux x86_64 或 aarch64 上执行:

bazel build --config=boringssl-fips //source/exe:envoy-static
  • 支持架构:Linux x86_64、aarch64;
  • 版本标识:构建产物在envoy --version中显示BoringSSL-FIPS

Envoy 遵循 BoringSSL FIPS 的 Update Stream 策略:在创建稳定发布分支时,会固定一个与该策略兼容的 BoringSSL FIPS 版本,除非出现影响 Envoy 的 Bug 或安全漏洞,否则该版本及配套构建工具版本在发布分支上不会变更,这保证了合规基线的可复现性。

验证 FIPS 构建是否生效

构建完成后,通过版本输出来确认 SSL 库状态:

envoy --version

输出中可关注以下标识:

  • BoringSSL-FIPS:FIPS 构建;
  • BoringSSL:标准(非 FIPS)构建;
  • OpenSSL:OpenSSL 构建。

关于 OpenSSL 方案的说明

如果必须在 FIPS 与特定平台之间权衡,还可以考虑 OpenSSL 构建(bazel build --config=openssl //source/exe:envoy-static)。需要明确的是:

  • OpenSSL 的 FIPS 模式是在运行时通过 OpenSSL 和/或操作系统配置强制开启的,而非构建期特性;
  • OpenSSL 构建支持 Linux x86_64、aarch64、ppc64le,其中 ppc64le 上没有 BoringSSL-FIPS,官方迁移指引正是在该架构上改用 OpenSSL;
  • 注意 OpenSSL 构建下 HTTP/3(QUIC)会被禁用,且 Envoy 的 OpenSSL 构建目前不在 Envoy 安全策略的覆盖范围内。

无论哪种方式,这些方案都面向 Linux 平台,Windows 上均无 FIPS 出路。

小结

围绕"Envoy 在 Windows 上是否支持 FIPS"这一问题,可以得出如下完整结论:

问题答案
Envoy 在 Windows 上是否支持 FIPS?不支持
根本原因默认 TLS 库 BoringSSL 在 Windows 上没有 FIPS 模式
构建体系证据boringssl_fips.genrule_cmd 仅允许 Linux x86_64 / aarch64
Windows 官方支持状态2023-08-31 起结束,不在 CI、发布与安全流程内
有 FIPS 需求怎么办在 Linux x86_64 / aarch64 上用--config=boringssl-fips构建,或联系贡献者社区

对于有 FIPS 合规要求的用户,当前唯一可行的路线是:将 Envoy 部署到 Linux 平台并采用 BoringSSL-FIPS 构建,同时在升级前仔细核对 bazel/SSL.md 中的版本策略与架构限制,确保安全基线与合规审计的一致性。

【免费下载链接】envoyCloud-native high-performance edge/middle/service proxy项目地址: https://gitcode.com/GitHub_Trending/en/envoy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 4:41:32

MathModelAgent:面向数学建模的可验证Agent工作流

1. 这不是又一个“AI写论文”的玩具:MathModelAgent 是数学建模工作流的底层重装你有没有经历过这样的深夜:赛题刚发布三小时,队友还在争论“这个变量到底该不该归一化”,而你已经对着空白的LaTeX文档框发了47分钟呆;或…

作者头像 李华
网站建设 2026/9/14 4:40:04

LangChain联网资讯助手:自动搜索与摘要生成实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 4:38:09

one-api 连 ChatGLM3-6B 老是不通?TaoToken 上换个 Key 给 Codex 再查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 4:37:06

企业项目管理工具选型指南:三维评估模型与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华