第 9 章 管理 TLS 证书
AMQ Streams 支持 TLS 用于 Kafka 和 AMQ Streams 组件间的加密通信。
在以下组件之间始终加密通信:
- Kafka 和 ZooKeeper 之间的通信
- Kafka 代理间的 Interbroker 通信
- ZooKeeper 节点间的交互通信
- AMQ Streams Operator 与 Kafka 代理和 ZooKeeper 节点通信
Kafka 客户端和 Kafka 代理之间的通信会根据如何配置集群的加密。对于 Kafka 和 AMQ Streams 组件,TLS 证书也用于身份验证。
Cluster Operator 会自动设置和更新 TLS 证书,以便在集群中启用加密和验证。如果要在 Kafka 代理和客户端之间启用加密或 mTLS 身份验证,它还设置其他 TLS 证书。
CA (证书颁发机构)证书由 Cluster Operator 生成,以验证组件和客户端的身份。如果您不想使用 Cluster Operator 生成的 CA,您可以安装自己的集群和客户端 CA 证书。
您还可以为启用了 TLS 加密的 TLS 侦听器或外部监听程序 提供 Kafka 侦听器证书。使用 Kafka 侦听器证书合并您已就位的安全基础架构。
您提供的任何证书都不会由 Cluster Operator 更新。
图 9.1. TLS 保护的通信架构示例
9.1. 内部集群 CA 和客户端 CA 复制链接链接已复制到粘贴板!
要支持加密,每个 AMQ Streams 组件需要自己的私钥和公钥证书。所有组件证书都由名为 集群 CA 的内部 CA (证书颁发机构)签名。
同样,使用 mTLS 连接到 AMQ Streams 的每个 Kafka 客户端应用程序都需要使用私钥和证书。第二个内部 CA (名为 客户端 CA )用于为 Kafka 客户端签名证书。
集群 CA 和客户端 CA 均有自签名公钥证书。
Kafka 代理配置为信任由集群 CA 或客户端 CA 签名的证书。客户端不需要连接到的组件,如 ZooKeeper,只信任由集群 CA 签名的证书。除非禁用外部监听程序的 TLS 加密,否则客户端应用程序必须信任由集群 CA 签名的证书。对于执行 mTLS 身份验证的客户端应用程序也是如此。
默认情况下,AMQ Streams 会自动生成和更新集群 CA 或客户端 CA 发布的 CA 证书。您可以在 Kafka.spec.clusterCa 和 Kafka.spec.clientsCa 对象中配置这些 CA 证书的管理。
您可以将集群 CA 或客户端 CA 的 CA 证书替换为您自己的 CA。更多信息请参阅 第 9.7.1 节 “安装您自己的 CA 证书和私钥”。如果您提供自己的 CA 证书,则必须在它们过期前更新它们。