微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Python Confluent 中为 OpenShift 中运行的 Kafka 集群配置 SSL

如何解决在 Python Confluent 中为 OpenShift 中运行的 Kafka 集群配置 SSL

我通过 Strimzi 操作符在 Openshift 上部署了一个 Kafka 集群。集群配置了 SSL 以进行外部连接。 我能够通过提取集群证书将我的 Java 使用者连接到集群,然后创建 Java 信任存储,如下所示:

oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > ca.crt
keytool -import -trustcacerts -alias root -file ca.crt -keystore truststore.jks -storepass password -noprompt

我现在面临的问题是如何配置我的Python 使用者 以使用 SSL 连接。 我可以从我的集群中提取以下文件

  • ca.crt
  • ca.p12
  • ca.password

按照 Confluent 团队 Using SSL with librdkafka 提供的文档,我尝试了不同的选择,但没有成功。

我低估的是 Python 只接受 PEM 格式,所以我必须将我的 ca.crt 转换为 ca.pem :

openssl x509 -in ca.crt -out cert.pem

然后在我的 Python 消费者中:

    'ssl.ca.location': "C:\kafka\cert",'ssl.certificate.location': "C:\kafka\cert\cert.pem"

但是,我不断收到错误

%4|1612028623.497|经纪人|insert_consumer#consumer-1| [thrd:app]:代理名称“https://kafka-cluster-kafka-ext-xxxxxxxx.com:443”解析错误不支持的协议“HTTPS”

我花了很多时间试图调试和理解问题,但没有任何运气。我遇到的一个主要困惑是 ca.p12 文件实际上是什么?

我做的认证转换错了吗?

我的环境:Windows 10、Python 3.6.8 和 confluent-kafka 1.5.0

非常感谢任何帮助或指导。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。