You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker跨主机部署Kafka时出现SSL引擎握手失败问题的原因排查求助

Docker跨主机部署Kafka时出现SSL引擎握手失败问题的原因排查求助

大家好,我现在遇到一个跨主机用Docker Compose部署Kafka的棘手问题,想请各位帮忙分析下原因。

我在两台不同主机上用同一个Docker Compose配置启动Kafka(搭配ZooKeeper),配置内容如下:

version: "2"

services:
  zookeeper:
    image: confluentinc/cp-zookeeper:5.5.7
    restart: unless-stopped
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_CLIENT_PORT: 2181

  kafka:
    image: confluentinc/cp-kafka:5.5.7
    restart: unless-stopped
    container_name: kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: SSL://:9092
      KAFKA_ADVERTISED_LISTENERS: SSL://:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: false
      KAFKA_DELETE_TOPIC_ENABLE: true
      KAFKA_SSL_KEYSTORE_FILENAME: broker.keystore.jks
      KAFKA_SSL_KEYSTORE_CREDENTIALS: pass
      KAFKA_SSL_KEY_CREDENTIALS: pass
      KAFKA_SSL_TRUSTSTORE_FILENAME: broker.truststore.jks
      KAFKA_SSL_TRUSTSTORE_CREDENTIALS: pass
      KAFKA_SSL_CLIENT_AUTH: requested
      KAFKA_SECURITY_PROTOCOL: SSL
      KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM: " "
      KAFKA_SECURITY_INTER_BROKER_PROTOCOL: SSL
    volumes:
      - ./secrets:/etc/kafka/secrets

其中一台主机上启动完全正常,但另一台主机启动Kafka时抛出了致命错误:

"Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
org.apache.kafka.common.KafkaException: org.apache.kafka.common.config.ConfigException: Invalid value javax.net.ssl.SSLHandshakeException: General SSLEngine problem for configuration A client SSLEngine created with the provided settings can't connect to a server SSLEngine created with those settings."

我排查了两台主机的差异,发现只有证书不同:

  • 正常启动的主机用的是SHA-512 with RSA签名算法,密钥长度2048位
  • 报错的主机用的是SHA-384 with ECDSA签名算法,密钥长度4096位

我查了资料,Kafka应该是支持这两种证书算法的,而且我没办法更换证书,必须用现有的证书解决问题。

想请教各位,这个错误可能是什么原因导致的?有没有不用换证书的解决办法?

备注:内容来源于stack exchange,提问作者Ilya Afinogentov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:13:08