Client File Configuration

为确保安全通信,请完成 Kafka 客户端相关的加密传输配置。

Notes

以下操作应在集群中的控制节点上进行。

目录

Required File Preview

根据 Kafka 实例的认证类型准备文件。每个文件与 Kafka 实例一一对应。如果存在多个实例,则需要分别配置对应的文件,相关文件可放置于不同路径。针对集群内访问场景,客户端路径示例为 /home/kafka

Encryption MethodAuthentication MethodRequired Files
Intra-cluster: TLS
External: TLS
SCRAM-SHA-512 or noneCA certificate: ca.p12
Client configuration file: client-ssl.properties
Intra-cluster: TLS
External: TLS
TLSCA certificate: ca.p12
User certificate: user.p12
Client configuration file: client-ssl.properties

I. Configure CA Certificate

  1. 生成 CA 证书。

    $ kubectl -n {Kafka instance namespace} get secret {Kafka instance name}-cluster-ca-cert -o jsonpath='{.data.ca\.p12}' | base64 -d > ca.p12
  2. 生成 CA 证书密码,请记录该密码。

    $ kubectl -n {Kafka instance namespace} get secret {Kafka instance name}-cluster-ca-cert -o jsonpath='{.data.ca\.password}' | base64 -d

II. User Certificate

  1. 生成用户证书。

    $ kubectl -n {Kafka instance namespace} get secret {Kafka user name} -o jsonpath='{.data.user\.p12}' | base64 -d > user.p12
  2. 生成用户证书密码,请记录该密码。

    $ kubectl -n {Kafka instance namespace} get secret {Kafka user name} -o jsonpath='{.data.user\.password}' | base64 -d

III. Configure Client Configuration Files

client-ssl.properties (无认证)

$ cat << EOF > client-ssl.properties
security.protocol=SSL
ssl.truststore.type=PKCS12
ssl.truststore.location=/home/kafka/ca.p12
ssl.truststore.password={CA certificate password}
EOF

client.properties (SCRAM-SHA-512 认证)

前提条件:在用户管理标签页,点击密钥字典并记录password字段的值。

$ cat << EOF > client.properties
security.protocol=SASL_SSL
ssl.truststore.type=PKCS12
ssl.truststore.location=/home/kafka/ca.p12
ssl.truststore.password={CA certificate password}

sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
    username="{Kafka user name}" \
    password="{Kafka user password}";

EOF

client-ssl.properties (TLS 认证)

$ cat << EOF > client-ssl.properties
security.protocol=SSL
ssl.truststore.type=PKCS12
ssl.truststore.location={client path}/ca.p12
ssl.truststore.password={CA certificate password}

ssl.keystore.type=PKCS12
ssl.keystore.location=/home/kafka/user.p12
ssl.keystore.password={user certificate password}
EOF
TIP

若需开启外部访问,请在配置文件中加入 ssl.endpoint.identification.algorithm=。

IV. Copy Files to Client

提示:请参考“Required File Preview”表格,确定您的访问方式所需的文件。

集群内访问

确保所需文件放置于客户端配置文件中指定的路径。

$ kubectl cp ./{required file name} {Kafka client namespace}/{Kafka client Pod name}:/home/kafka/ -c kafka

外部访问

确保所需文件放置于客户端配置文件中指定的路径。