11.7. Kafka 侦听程序证书
您可以为以下类型的监听程序提供自己的服务器证书和私钥:
- 用于 OpenShift 集群内部通信的内部 TLS 侦听器
-
外部监听程序(
路由
、负载均衡器、
入口
和节点端口
类型),它们启用了 TLS 加密,用于 Kafka 客户端和 Kafka 代理之间的通信
这些用户提供的证书称为 Kafka 侦听程序证书。
为外部监听程序提供 Kafka 侦听程序证书可让您利用现有安全基础架构,如组织的私有 CA 或公共 CA。Kafka 客户端将使用 Kafka 侦听程序证书而不是由集群 CA 或客户端 CA 签名的证书连接到 Kafka 代理。
在需要时,您必须手动更新 Kafka 侦听程序证书。
11.7.1. 提供您自己的 Kafka 侦听程序证书
此流程演示了如何配置监听程序以使用您自己的私钥和服务器证书,称为 Kafka 侦听程序证书。
您的客户端应用程序应使用 CA 公钥作为可信证书,以验证 Kafka 代理的身份。
先决条件
- OpenShift 集群。
- Cluster Operator 正在运行。
对于每个侦听器,由外部 CA 签名的兼容服务器证书。
- 提供 PEM 格式的 X.509 证书。
- 为每个监听器指定正确的主题备用名称(SAN)。如需更多信息,请参阅 第 11.7.2 节 “Kafka 监听程序服务器证书中的其他主题”。
- 您可以在证书文件中提供包含整个 CA 链的证书。
流程
创建包含私钥和服务器证书的
Secret
:oc create secret generic my-secret --from-file=my-listener-key.key --from-file=my-listener-certificate.crt
编辑集群的
Kafka
资源。配置侦听器,以在configuration.brokerCertCertChainAndKey
属性中使用您的Secret
、证书文件和私钥文件。启用 TLS
加密的负载均衡器
外部监听程序配置示例# ... listeners: - name: plain port: 9092 type: internal tls: false - name: external port: 9094 type: loadbalancer tls: true authentication: type: tls configuration: brokerCertChainAndKey: secretName: my-secret certificate: my-listener-certificate.crt key: my-listener-key.key # ...
TLS 侦听器的配置示例
# ... listeners: - name: plain port: 9092 type: internal tls: false - name: tls port: 9093 type: internal tls: true authentication: type: tls configuration: brokerCertChainAndKey: secretName: my-secret certificate: my-listener-certificate.crt key: my-listener-key.key # ...
应用新配置以创建或更新资源:
oc apply -f kafka.yaml
Cluster Operator 会启动 Kafka 集群的滚动更新,该更新会更新监听器的配置。
注意如果您在已由 TLS 或外部监听器使用的
Secret
中更新 Kafka 侦听程序证书,还会启动滚动更新。