使用 ca cert(.crt 或 .pem)配置 Kafka 客户端

Posted

技术标签:

【中文标题】使用 ca cert(.crt 或 .pem)配置 Kafka 客户端【英文标题】:Configure Kafka client with ca cert (.crt or .pem) 【发布时间】:2021-11-30 00:10:40 【问题描述】:

我正在使用 debezium 配置使用 SASL_SSL 的 kafka 连接。虽然 SASL 身份验证配置我可以做如下:

security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username=$KAFKA_USERNAME password=$KAFKA_PASSWORD;"

我找不到任何有关使用 .crt 或 pem 文件配置 CA 位置的文档。在基于 librdkafka 的 C# 或 Python 客户端中,我可以设置以下属性:

ssl.ca.location = 'path/to/ca/file/ca-bundle.crt (pem also works)

但是对于 Java 客户端(基于 Java 的 debezium),我只看到 jks 格式的信任库。 如何配置它以使用类似于上面提到的客户端? 下面的内容对 java 客户端有效吗?

ssl.truststore.type = PEM
ssl.truststore.location='path/to/ca/file/ca-bundle.crt'

【问题讨论】:

【参考方案1】:

Java 信任库和密钥库只能是 JKS 文件。如果你只有 PEM/CRT 文件,你需要convert them

【讨论】:

以上是关于使用 ca cert(.crt 或 .pem)配置 Kafka 客户端的主要内容,如果未能解决你的问题,请参考以下文章

ssl证书 只有crt文件 但是使用时需要key或pem文件 请问如何转换

mitmproxy-ca-cert.pem手机证书文件安装(一直安装不上,折磨我了两天!)

SSL:无法加载 CA 证书文件 /etc/pki/tls/certs/ca-bundle.crt

如何配置 Spring Boot 应用程序以在 MySQL 上使用 SSL/TLS?

具有2个中间CA的nginx客户端身份验证

CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 解决方法