ssl - 哪些隐藏配置可以仅使用来自 Kafka 集群的 CA 信息启用 TLS 通信?
问题描述
我有这段代码,它适用于我的 Kafka 集群(我从同事那里得到的,不知道它是如何配置的)。我将 cluster-ca-cert 文件的内容复制到文件 myca.ca.pem 中。我的问题是,如果没有建立 SSL 连接所需的许多参数,我不明白为什么它可以工作。
from time import sleep
from json import dumps
from kafka import KafkaProducer
producer = KafkaProducer( bootstrap_servers='test-kafka.com:443',value_serializer=lambda x: dumps(x).encode('utf-8'), security_protocol='SSL', ssl_cafile = 'myca.ca.pem', ssl_check_hostname=False)
for e in range(1000):
data = {'number' : e}
producer.send('hello', value=data)
sleep(5)
我了解 pub/priv key 或 CA 的用途和方式,但是当将所有这些东西放在 SSL 和 Kafka 上下文中时,我很难理解。许多问题出现在我的脑海中,例如
- 客户端生成的 pub/priv 密钥在哪里?在代码中,我没有在任何地方公开 pub 密钥或 CA,服务器如何信任客户端?
- 为什么它只与集群中的 CA 一起工作,在服务器端生成的 pub key 怎么样?同样,在代码中,我只从服务器复制 CA,而不是公钥。
- 这是否意味着有一个配置允许从某个地方使用默认值?我确定有,只是想知道配置了 SSL 握手的哪一部分。
提前致谢,
解决方案
推荐阅读
- opencv - OpenCV - RTSP 流未打开
- javascript - 概括类型化的 setter 和 getter 的最佳方法是什么?
- java - 如何将 Swagger codegen Java 模型生成为 JPA 实体
- android - 安装必备应用程序以在 firebase 测试实验室中测试我们的应用程序
- django - Django 翻译成自定义语言在开发中有效,但在生产中无效
- excel - 如何指定要与 find/with 一起使用的工作表
- c - 使用 fread 将数据复制到结构中
- mysql - Windows 功能对 10.1.37-MariaDB 无效?
- r - 从 R 函数返回列表与环境
- xamarin.forms - Xamarin 表单:如何从文件选择器中选择多个文件