ssl - 使用 ssl+acl 配置的 Console Producer 中的 Leader 不可用 Kafka

标签 ssl apache-kafka kafka-producer-api

我正在尝试将 kafka 0.11.0.1 与 ssl+acls 一起使用。我的配置在下面。

服务器属性:

broker.id=0
listeners=PLAINTEXT://127.0.0.1:9092,SSL://127.0.0.1:9093
advertised.listeners=SSL://127.0.0.1:9093
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400  
socket.request.max.bytes=104857600 
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.segment.bytes=1073741824
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
ssl.keystore.location=/u/jewel/ssl+acl/kafka_2.11-0.11.0.1/kaf-new/server.keystore.jks
ssl.keystore.password=test1234
ssl.key.password=test1234
ssl.truststore.location=/u/jewel/ssl+acl/kafka_2.11-0.11.0.1/kaf-new/server.truststore.jks
ssl.truststore.password=test1234

生产者属性:

bootstrap.servers=localhost:9093
compression.type=none
ssl.keystore.location=/u/jewel/ssl+acl/kafka_2.11-0.11.0.1/prod/server.keystore.jks
ssl.keystore.password=test123
ssl.key.password=test123
security.protocol=SSL
ssl.truststore.location=/u/jewel/ssl+acl/kafka_2.11-0.11.0.1/kaf-new/client.truststore.jks
ssl.truststore.password=test1234

服务器上的CN如下:

subject=/C=in/ST=maha/L=mum/O=atos/OU=atos/CN=kafka    
issuer=/C=in/ST=maha/L=mum/O=atos/OU=atos/CN=kafka/emailAddress=abc@gmail.com

生产者的CN如下:

subject=/C=in/ST=maha/L=mum/O=atos/OU=atos/CN=kaf

当我运行生成命令时 _i.e.

$ kafka-console-producer.sh --broker-list localhost:9093 --topic test --producer.config client-ssl.properties

我可以生产。但是,一旦我将下面的行添加到 server.properties包括 ACLS 和 SSL 生成失败:

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer

我使用以下命令创建了 acls:

$ bin/kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:CN=kaf,OU=atos,O=atos,L=mum,ST=maha,C=in --producer --topic hel  

失败并出现以下错误:

>helo  
 [2017-11-29 12:29:02,845] WARN Error while fetching metadata with 
  correlation id 1 : {hel=LEADER_NOT_AVAILABLE} 
 (org.apache.kafka.clients.NetworkClient)  

请建议一种方法来进行这些配置。

最佳答案

我忘记添加 super.users 属性,这是强制性的,它需要是 server.properties 的典型 CN。

添加它解决了我的问题

关于ssl - 使用 ssl+acl 配置的 Console Producer 中的 Leader 不可用 Kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47553462/

相关文章:

python - 有没有办法在 Python 中禁用证书验证(CERT_NONE)来获取远程对等证书?

spring-boot - Spring @Kafkalistener 自动提交偏移量或手动 : Which is recommended?

hadoop - Kafka console producer 在 Hortonworks HDP 2.3 Sandbox 中出错

java - 获取相关 ID 为 92 的元数据时出错 : {myTest=UNKNOWN_TOPIC_OR_PARTITION}

java - XMPP 服务器。如何打开 TLS 连接?

performance - 在 https 中运行您的完整网站有什么缺点吗?

java - 如何编写在它们之间使用相互 ssl 身份验证的 java 客户端和服务器应用程序?

json - Json 不适合 Avro 的什么场景

apache-kafka - Kafka - 简单的消费者/生产者设置不适用于不同的机器,但可以在本地工作

java - 微服务中Kafka生产者引起的Big GC暂停