Python Confluent-Kafka SSL 配置

Python Confluent-Kafka SSL Configuration

已经创建了一个基本的 Confluent-Kafka 生产者和消费者来发送明文消息。

在成功地将消息从生产者发送到消费者后,添加了额外的配置以使用 SSL 而不是 PLAINTEXT。

已实现以下配置,导致出现以下错误。

"Message Timed Out"

生产者配置:

bootstrap.servers: localhost9093
security.protocol: SSL
ssl.keystore.location: ../keystore.p12
ssl.keystore.password: [password]
ssl.ca.location: ../CARoot.pem
ssl.key.location: ../key.pem
ssl.certificate.location: ../cert.pem
ssl.key.password: [password]

服务器配置:

ssl.keystore.type= PKCS12
ssl.keystore.location= ../keystore.p12
ssl.keystore.password= [password]
ssl.ca.location= ..\CARoot.pem
ssl.certificate.location= ..\cert.pem
ssl.key.password= [password]
ssl.key.location= ../key.pem
security.inter.broker.protocol= SSL
listeners = PLAINTEXT://localhost:9092,SSL://localhost:9093
advertised.listeners = PLAINTEXT://localhost:9092,SSL://localhost:9093

实施 SSL 是否需要额外的配置?

另外,谁能总结一下CARoot? 据我所知,这是一个证书链。 因此,如果只有一张证书,CARoot.pem和cert.pem应该相同吗? 这个文件可能是问题所在。 证书和私钥是在 PyOpenSSL 中创建的。 keystore.p12 是使用 keytool 从 .jks 密钥库转换而来的。

有没有办法使用此库创建 CARoot.pem 文件?

谢谢。

由于 CA 证书文件的格式,制作者超时。

以下问题的解决方案用于解决超时错误,它使用的是OpenSSL而不是PyOpenSSL。

注意:OpenSSL 在 Git Bash.

中可用

How to export CA certificate chain from PFX in PEM format without bag attributes

此外,对服务器和生产者的配置进行了一些更改。

生产者配置:

bootstrap.servers: localhost9093
security.protocol: SSL
ssl.ca.location: ../CARoot.pem
ssl.key.location: ../key.pem
ssl.certificate.location: ../cert.pem

服务器配置:

ssl.protocol= SSL
ssl.keystore.type= JKS
ssl.keystore.location= ../keystore.jks
ssl.keystore.password= [password]
ssl.client.auth= required
security.inter.broker.protocol= SSL
listeners = PLAINTEXT://localhost:9092,SSL://localhost:9093
advertised.listeners = PLAINTEXT://localhost:9092,SSL://localhost:9093