10.5. 配置内部客户端以信任集群 CA
此流程描述了如何配置位于 OpenShift 集群内部的 Kafka 客户端 - 连接到 TLS 侦听器 - 以信任集群 CA 证书。
为内部客户端达到此目的的最简单方法是使用卷挂载访问包含所需 证书和密钥 的 Secret。
按照以下步骤为基于 Java 的 Kafka Producer、消费者和流 API 配置集群 CA 签名的信任证书。
根据集群 CA 的证书格式选择以下步骤: PKCS #12 (.p12)或 PEM (.crt)。
步骤描述了如何挂载 Cluster Secret,将 Kafka 集群的身份验证到客户端 pod。
先决条件
- Cluster Operator 必须正在运行。
-
需要在 OpenShift 集群中有一个
Kafka资源。 - 您需要在 OpenShift 集群上使用 TLS 连接的 Kafka 客户端应用程序,并需要信任集群 CA 证书。
-
客户端应用程序必须与
Kafka资源在同一命名空间中运行。
使用 PKCS #12 格式(.p12)
在定义客户端 pod 时,将集群 Secret 挂载为卷。
例如:
kind: Pod apiVersion: v1 metadata: name: client-pod spec: containers: - name: client-name image: client-name volumeMounts: - name: secret-volume mountPath: /data/p12 env: - name: SECRET_PASSWORD valueFrom: secretKeyRef: name: my-secret key: my-password volumes: - name: secret-volume secret: secretName: my-cluster-cluster-ca-cert我们在这里挂载:
- PKCS #12 文件为准确路径,可以配置
- 在环境变量中,密码可用于 Java 配置
使用以下属性配置 Kafka 客户端:
安全协议选项:
-
security.protocol:在使用 TLS 加密时(使用或没有 TLS 身份验证)时的 SSL。 -
security.protocol: SASL_SSL在通过 TLS 使用 SCRAM-SHA 验证时。
-
-
SSL.truststore.location,使用导入证书的 truststore 位置。 -
SSL.truststore.password,密码为,用于访问信任存储。 -
SSL.truststore.type=PKCS12来识别信任存储类型。
使用 PEM 格式(.crt)
在定义客户端 pod 时,将集群 Secret 挂载为卷。
例如:
kind: Pod apiVersion: v1 metadata: name: client-pod spec: containers: - name: client-name image: client-name volumeMounts: - name: secret-volume mountPath: /data/crt volumes: - name: secret-volume secret: secretName: my-cluster-cluster-ca-cert- 将证书与使用 X.509 格式的证书的客户端一起使用。