在 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 (将#修改为@)