librdkafka中enable.ssl.certificate.verification在Scala客户端等效配置
Kafka Java/Scala客户端SSL无证书连接配置说明
等效配置对应关系
librdkafka生态下的enable.ssl.certificate.verification=false是C系客户端专属的简化校验开关,Java/Scala官方Kafka客户端没有同名配置,对应功能分版本实现:
- 所有版本通用的
ssl.endpoint.identification.algorithm=none和librdkafka同名配置作用完全一致,用来关闭Broker证书的主机名匹配校验,现有配置里的这一项可以直接复用。 - 针对证书信任链校验的开关:
- 2.6.0及以上版本的官方Java/Scala客户端,直接配置
ssl.certificate.verification=false即可完全等效librdkafka的对应配置,一键关闭Broker证书的信任链、有效期校验。 - 2.6.0以下版本没有提供一键开关,需要通过信任库配置实现同等效果。
- 2.6.0及以上版本的官方Java/Scala客户端,直接配置
测试环境无证书SSL连接方案
不管客户端版本高低,都不需要导入Broker端证书、不需要修改业务代码,用对应配置即可直接连通:
2.6.0及以上版本配置
直接使用和librdkafka逻辑对齐的配置即可:
security.protocol=SSL ssl.endpoint.identification.algorithm=none ssl.certificate.verification=false
2.6.0以下版本配置
通过传入空信任库的方式跳过证书校验:
security.protocol=SSL ssl.endpoint.identification.algorithm=none ssl.truststore.type=PEM ssl.truststore.certificates=""
风险提示:上述所有跳过证书校验的配置仅允许在测试环境使用,生产环境开启会完全丧失SSL的加密防篡改能力,存在极高的中间人攻击风险。
兼容性说明
所有基于官方Java/Scala Kafka客户端封装的连接器(包括各类Scala生态的Kafka消费组件),只要底层依赖的客户端版本符合要求,上述配置都可以直接生效,不需要额外修改代码逻辑。
内容的提问来源于stack exchange,提问作者Thiago Baldim
相关产品推荐
相关产品推荐

