【问题标题】:Configuring Kafka Client One Way SSL with PEM使用 PEM 配置 Kafka 客户端单向 SSL
【发布时间】:2021-06-08 21:09:25
【问题描述】:

我正在尝试使用 PEM 为我的 kafka 客户端配置一种方式 SSL。现在我正在试验kafka-topics.sh --list,但将来它将是一个不能使用 JKS 的 Java 客户端。错误消息告诉我指定类型,但我引用的文档没有告诉我如何:https://kafka.apache.org/documentation/#producerconfigs_ssl.truststore.certificates

ssl.truststore.certificates

“ssl.truststore.type”指定格式的可信证书。默认 SSL 引擎工厂仅支持带有 X.509 证书的 PEM 格式。

类型:密码 默认值:空 有效值: 重要性:高

以下是来自 kafka-topics.sh 的错误信息

~/kafka/bin/kafka-topics.sh \
  --command-config /home/kafka/kafka/client_security_one_way_ssl_using_pem.properties \
  --bootstrap-server MY_IP:9093 \
  --list
Exception in thread "main" org.apache.kafka.common.KafkaException: Failed to create new KafkaAdminClient
        at org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:535)
        at org.apache.kafka.clients.admin.Admin.create(Admin.java:65)
        at kafka.admin.TopicCommand$AdminClientTopicService$.createAdminClient(TopicCommand.scala:228)
        at kafka.admin.TopicCommand$AdminClientTopicService$.apply(TopicCommand.scala:232)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:59)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)
Caused by: org.apache.kafka.common.errors.InvalidConfigurationException: SSL trust store certs can be specified only for PEM, but trust store type is JKS.

client_security_one_way_ssl_using_pem.properties的内容:

ssl.endpoint.identification.algorithm=
security.protocol=SSL

ssl.truststore.certificates=-----BEGIN CERTIFICATE----- \
< SECRET :) > \
-----END CERTIFICATE-----

我也试过添加

ssl.truststore.type=PEM

但现在我的错误信息是:

[2021-03-10 16:18:21,343] WARN The configuration 'ssl.truststore.certificates' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig)
[2021-03-10 16:18:21,344] WARN The configuration 'ssl.truststore.type' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig)
[2021-03-10 16:18:21,344] WARN The configuration 'ssl.endpoint.identification.algorithm' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig)

2.7.0 应该支持这些属性:

~/kafka/bin/kafka-topics.sh   --version
2.7.0 (Commit:448719dc99a19793)

【问题讨论】:

    标签: java ssl apache-kafka


    【解决方案1】:

    根本原因是我需要拥有

    ssl.truststore.type=PEM
    

    在我的属性文件中。

    WARN 日志消息不是问题。 Apache Kafka 在此处跟踪错误:https://issues.apache.org/jira/browse/KAFKA-10090 并从 2.8.0 开始修复。

    [2021-03-10 16:18:21,343] WARN The configuration 'ssl.truststore.certificates' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig)
    [2021-03-10 16:18:21,344] WARN The configuration 'ssl.truststore.type' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig)
    [2021-03-10 16:18:21,344] WARN The configuration 'ssl.endpoint.identification.algorithm' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig)
    

    其实是在获取话题,但是我没有话题。

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 1970-01-01
      • 2021-02-09
      • 2020-05-19
      • 1970-01-01
      • 2020-12-09
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多