1

我正在使用 KafkaJS 编写 NodeJS Kafka 生产者,并且无法理解如何获取所需的 SSL 证书以便使用 SASL-SSL 连接连接到 Kafka。在 KafkaJS 文档中,SSL 有以下配置:

ssl: {
    rejectUnauthorized: false,
    ca: [fs.readFileSync('/my/custom/ca.crt', 'utf-8')],
    key: fs.readFileSync('/my/custom/client-key.pem', 'utf-8'),
    cert: fs.readFileSync('/my/custom/client-cert.pem', 'utf-8')
  },

我有问题,因为我不知道我应该如何/提供什么证书给它。

我需要提供所有三个道具(ca、key 和 cert)吗?如果是这样如何获得它们?我们已经像这样配置了 Kafka集群 。我对这一切只有一点了解。

4

1 回答 1

1

您的代理是否强制执行客户端身份验证?如果是,那么您将需要keyand cert。如果您的客户端在“标准”计算机上运行,​​那么最知名的 CA 将已经存在,例如/etc/ssl/certs. 在这种情况下,您需要ssl : true. 如果您使用的是自签名证书而不是客户端身份验证,则ca需要提供。

所以,这里是你的选择。

客户端认证

如果 CA 是自签名的,则ca还要添加(见下文)。

ssl: {
    key: fs.readFileSync('/my/custom/client-key.pem', 'utf-8'),
    cert: fs.readFileSync('/my/custom/client-cert.pem', 'utf-8')
  }

自签名证书

ssl: {
    rejectUnauthorized: false,
    ca: [fs.readFileSync('/my/custom/ca.crt', 'utf-8')]
  }

rejectUnauthorized : false不会检查已知CA。

有关更多信息,请参阅此SO 问题

于 2020-05-04T04:43:24.110 回答