搜索

16.4. 配置内部客户端以信任集群 CA

download PDF

此流程描述了如何配置位于 OpenShift 集群内的 Kafka 客户端 - 连接到 TLS 侦听器 - 信任集群 CA 证书。

为内部客户端实现此目的的最简单方法是,使用卷挂载来访问 包含所需 证书和密钥的 Secret。

按照以下步骤为基于 Java 的 Kafka Producer、Consumer 和 Streams API 配置由集群 CA 签名的信任证书。

根据集群 CA 的证书格式,选择遵循的步骤:PKCS #12 (.p12) 或 PEM (.crt)。

步骤描述了如何挂载 Cluster Secret,将 Kafka 集群的身份验证到客户端 pod。

先决条件

  • Cluster Operator 必须正在运行。
  • OpenShift 集群中需要有一个 Kafka 资源。
  • 您需要在 OpenShift 集群中使用 TLS 进行连接的 Kafka 客户端应用程序,需要信任集群 CA 证书。
  • 客户端应用程序必须与 Kafka 资源在同一命名空间中运行。

使用 PKCS #12 格式 (.p12)

  1. 在定义客户端 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 配置
  2. 使用以下属性配置 Kafka 客户端:

    • 安全协议选项:

      • security.protocol :当使用 TLS 加密时(带有或没有 mTLS 验证)时 SSL
      • security.protocol:通过 TLS 使用 SCRAM-SHA 身份验证时 SASL_SSL
    • ssl.truststore.location,使用导入证书的信任存储位置。
    • ssl.truststore.password,使用用于访问 truststore 的密码。
    • ssl.truststore.type=PKCS12 来识别信任存储类型。

使用 PEM 格式(.crt)

  1. 在定义客户端 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
  2. 使用提取的证书,以 X.509 格式使用证书的客户端配置 TLS 连接。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.