当前位置: 首页 > 知识库问答 >
问题:

在单个节点上使用带有Kafka的SSL

江温书
2023-03-14

我想让SSL和Kafka一起运行,让它更安全。我下载了Kafka并安装了它。我按照说明为SSL创建证书和信任库,没有任何问题。我将以下内容添加到我的config/server.properties中

ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
ssl.keystore.type=JKS
ssl.truststore.type=JKS

listeners=PLAINTEXT://localhost:9092,SSL://localhost:9093
ssl.endpoint.identification.algorithm=HTTPS
security.inter.broker.protocol=SSL
ssl.secure.random.implementation=SHA1PRNG
ssl.endpoint.identification.algorithm=HTTPS
ssl.keystore.location=/home/ec2-user/workspace/kafka/cert/server.keystore.jks
ssl.key.password=<the password>
ssl.keystore.password=<the password>
ssl.truststore.location=/home/ec2-user/workspace/kafk/cert/server.truststore.jks
ssl.truststore.password=<the password>

启动Zookeeper后,我在启动kafak时收到此错误:[2017-12-07 16:02:52,155]ERROR[Controller id=0, targetBrokerId=0]连接到节点0的身份验证失败,原因是:SSL握手失败(org.apache.kafka.clients.NetworkClient)。我必须杀死任务才能停止此消息

查看< code >日志/控制器. log:

[Controller-0-to-broker-0-send-thread]: Controller 0's connection to broker localhost:9093 (id: 0 rack: null) was unsuccessful (kafka.controller.RequestSendThread)

9093端口必须打开防火墙吗

非常感谢。

共有1个答案

耿弘阔
2023-03-14

握手失败通常意味着他们能够互相交谈,但无法达成一致。

您应该尝试在配置中不使用 SSL.endpoint.标识算法 =HTTPS 行。通常,证书检查中的主机名不匹配是导致此类情况的原因。

 类似资料:
  • 我计划部署Kafka集群。我有以下查询: 1)为了保护生产者和消费者与Kafka broker的通信,可以使用SSL。如果我有一个由9个代理和3个zookeeper节点组成的集群,并且如果我不想使用自签名证书,我是否必须为每个节点购买一个证书(9个3证书,成本太高)? 正如我所读到的,生产者/消费者直接联系其中一个经纪人节点,而不联系动物园管理员。 谢谢, 病毒的

  • 我已经掌握了XPath的基本知识,但在确定以下内容是否可以在使用XPath的C代码中实现时遇到了一些困难(或者我是否需要将其转移到其他代码中,正如我目前所做的那样)。 我有一个XML文档,它由以下结构组成: 其中有多个设置参数值。现在我需要做的只是检索那些包含name属性某些值的setParameter节点。我可能有这些值的可能匹配列表,但它们不会是完全匹配,它们将是节点的name属性必须包含的值

  • 问题内容: 因此,我的目标是以分布式方式建立一个由多个kafka经纪人组成的集群。但是我看不出让经纪人彼此了解的方法。 据我了解,每个代理在其配置中都需要一个单独的ID,如果我从Kubernetes启动容器,我不能保证或配置该ID吗? 他们还需要具有相同的advertised_host吗? 是否有我需要更改的参数才能使节点相互发现? 在Dockerfile的末尾使用脚本进行这样的配置是否可行?和/

  • 从服务器上,我能够连接并从配置了SSL的远程kafka服务器主题获取数据。 如果我指向GCS上的证书,当证书指向Google存储桶时,它会抛出错误。 其次是:Truststore和Google Cloud Dataflow 更新的代码将SSL truststore、keystore位置指向本地机器的/tmp目录认证,以防KafkaIO需要从文件路径读取。它没有抛出FileNotFounderRor

  • 我对在Mesos上测试Spark运行感兴趣。我在Virtualbox中创建了一个Hadoop2.6.0单节点集群,并在其上安装了Spark。我可以使用Spark成功地处理HDFS中的文件。

  • 本文向大家介绍Drupal hook_form_alter()在节点表单上,包括了Drupal hook_form_alter()在节点表单上的使用技巧和注意事项,需要的朋友参考一下 我只是花了最后几分钟来寻找解决方案,所以我认为其他人也许可以从中受益。 hook_form_alter()仅使用模块名称就可以在模块中调用该挂钩,这可以使您将系统中的所有表单作为目标。对于名为“我的模块”的模块,它将