Kraft 经纪商间通过 SSL 进行通信

问题描述 投票:0回答:1

我想知道我是否遗漏了有关为 Kraft 配置 SSL 的信息。

我们目前有一个 Zookeeper 集群,其中所有代理间和客户端通信都使用 SSL。我们管理自己的 CA 并为我们的经纪商和客户生成所有必要的密钥库/信任库 jks 文件。我们已经这样做好几年了。

我最近一直在尝试建立一个基于 Kraft 的集群。由于 Kraft 控制器的配置与 Kafka 代理非常相似,我想我会尝试让 Kraft 控制器通过 SSL 相互通信,就像代理一样。

当我为 Kraft 控制器启用 SSL 时,我在启动时收到此错误:

Invalid value javax.net.ssl.SSLHandshakeException: No available authentication scheme for configuration A client SSLEngine created with the provided settings can't connect to a server SSLEngine created with those settings.

我使用 Confluence 的镜像在 Docker 容器中运行所有内容。目前使用版本 7.7.0,尽管我在 7.7.1 上看到了相同的错误

打开 SSL 调试没有发现任何明显的结果。我对发生的事情感到非常困惑。想知道这里是否有人有想法。对此进行了多次尝试,并进行了大量研究,但没有取得任何进展。

我的相关 Kraft 控制器配置

KAFKA_CONTROLLER_LISTENER_NAMES: SSL
KAFKA_INTER_BROKER_LISTENER_NAME: SSL
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "SSL:SSL"
KAFKA_LISTENERS: SSL://0.0.0.0:9094
KAFKA_METADATA_VERSION: "3.7"
KAFKA_PROCESS_ROLES: controller
KAFKA_SSL_CLIENT_AUTH: required
KAFKA_SSL_KEYSTORE_CREDENTIALS: credentials
KAFKA_SSL_KEYSTORE_FILENAME: keystore.jks
KAFKA_SSL_KEY_CREDENTIALS: credentials
KAFKA_SSL_SECRETS_DIR: /etc/kafka/secrets
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: credentials
KAFKA_SSL_TRUSTSTORE_FILENAME: truststore.jks
ssl apache-kafka kraft
1个回答
0
投票

我相信这个问题和我的评论抓住了问题和解决方案

https://github.com/confluenceinc/kafka-images/issues/350

您可以通过手动设置 Confluence 的

configure
脚本为您设置的 SSL 环境变量来解决此问题。

    # created by config file, but setting manually here
      KAFKA_SSL_KEY_CREDENTIALS_LOCATION: "/kafka/etc/secrets/credentials"
      KAFKA_SSL_KEY_PASSWORD: "hunter1"
      KAFKA_SSL_KEYSTORE_LOCATION: "/kafka/etc/secrets/keystore.jks"
      KAFKA_SSL_KEYSTORE_CREDENTIALS_LOCATION: "/kafka/etc/secrets/credentials"
      KAFKA_SSL_KEYSTORE_PASSWORD: "hunter1"
      KAFKA_SSL_TRUSTSTORE_LOCATION: "/kafka/etc/secrets/truststore.jks"
      KAFKA_SSL_TRUSTSTORE_CREDENTIALS_LOCATION: "/kafka/etc/secrets/credentials"
      KAFKA_SSL_TRUSTSTORE_PASSWORD: "hunter1"
© www.soinside.com 2019 - 2024. All rights reserved.