跳到主要内容
版本:3.10.x

控制面与数据面之间的双向 TLS

保护控制面(CP)与数据面(DP)之间的通信通道,是保障整个 API7 网关完整性和安全性的基础。所有配置变更、策略更新和指标上报都通过该通道传输。为保护这一关键基础设施,API7 对所有 CP-DP 通信强制启用双向 TLS(mTLS),且无法禁用。这可确保所有传输中数据均经过加密,并且控制面与数据面在交换任何信息之前都能通过密码学方式验证对方身份。

API7 使用成熟的公钥基础设施(PKI)模型管理此过程,相比简单的共享密钥或证书固定方式,具有更高的安全性和可扩展性。即使在多租户环境中,该方式也能确保每个客户的基础设施安全隔离。

API7 中 mTLS 的工作原理

双向 TLS 扩展了标准 TLS 协议,要求客户端和服务器双方都出示并验证证书。在 API7 中,数据面作为客户端发起连接,控制面作为服务器。

该过程遵循标准 PKI 信任模型:

  1. 信任锚:控制面维护一个自动生成的唯一证书颁发机构(CA)。此 CA 是该 API7 部署唯一的信任根。
  2. 证书签发:控制面使用其私有 CA 为自身签发唯一的服务器证书,并为每个数据面节点签发客户端证书。
  3. 握手与验证:数据面节点尝试连接控制面时,会出示客户端证书。控制面验证该证书是否由其可信 CA 签发;同时,数据面使用同一 CA 验证控制面的服务器证书。

这种双向验证确保只有已授权的数据面节点可以连接控制面,数据面节点也只会连接合法的控制面,从而防止中间人攻击和未经授权的配置注入。

CA 和证书管理

API7 旨在尽可能自动且安全地完成证书管理。

自动生成 CA

API7 控制面首次启动时会检查数据库中是否已有 CA。如果未找到 CA,则自动生成新的根 CA。每个客户的部署都有唯一 CA,确保一个客户环境中的证书不会被另一个环境信任。随后,控制面立即使用该 CA 签发建立安全通信所需的服务器和客户端证书。

证书有效期

安装新的数据面节点时,可以根据组织的安全策略指定证书有效期。API7 提供以下预定义选项:

有效期使用场景
1 年需要频繁轮换证书的高安全环境
2 年采用定期轮换周期的均衡方案
3 年标准企业部署
5 年长期运行的生产环境
10 年默认值;适用于稳定、低频轮换的部署

默认情况下,新数据面节点会获得有效期为 10 年的证书。不过,你可以在数据面安装过程中选择更短的有效期,以便更频繁地轮换证书并满足安全合规要求。

证书轮换

证书会自动生成,但当前仍需手动执行轮换。管理员负责跟踪证书到期时间,并在安全策略要求或可能发生泄露时启动轮换。

灵活部署

API7 支持灵活部署数据面节点。可以为每个数据面节点配置由控制面 CA 签名的唯一证书;在较简单的部署场景中,多个数据面节点也可以共享同一个客户端证书。

部署和配置

API7 的一项重要安全优势是,控制面与数据面之间的 mTLS 默认启用且无法禁用,无需额外配置。

例如,使用官方 API7 Helm Chart 部署新的数据面节点时,所需 CA 和客户端证书会自动配置并注入数据面配置。这种开箱即用的安全机制消除了错误配置风险,确保集群中的每个新节点从启动之初就能安全通信。

验证 mTLS 配置

验证 mTLS 是否正常工作非常简单,主要依据数据面节点本身的健康状态。

  • 连接成功:如果数据面节点成功启动,并在控制台中显示为健康且已连接,则表示 mTLS 握手成功且通信已建立。
  • 连接失败:如果 mTLS 配置不正确(例如证书缺失或损坏,或网络问题阻止握手),数据面节点将无法启动。它无法连接控制面获取配置,因此也无法代理任何流量。

故障排查

CP-DP 通信最常见的问题与网络连接有关,而非 mTLS 配置本身。如果数据面节点无法连接,请检查:

  • 网络可达性:确保数据面节点与控制面的所需 HTTPS 端口之间存在畅通的网络路径。
  • 防火墙规则:确认没有防火墙、安全组或网络策略阻止 CP 与 DP 之间的流量。
  • DNS 解析:确认数据面节点可以正确解析控制面的主机名。

性能注意事项

用于保护 CP-DP 通道的 mTLS 机制对数据面处理的 API 流量没有性能影响。该安全通道仅用于管理任务,例如控制面向数据面推送配置更新,以及数据面向控制面上报指标。面向客户端的所有 API 请求都由独立且高度优化的数据路径处理,不参与此 mTLS 握手。