【发布时间】:2021-02-23 00:46:38
【问题描述】:
如何在 java 客户端中使用 PEM 编码文件配置 kafka 进行 TLS 通信。我在那里看到的所有文档都谈到了创建和使用 java KeyStore 和 trustStore。
https://kafka.apache.org/10/javadoc/index.html?org/apache/kafka/clients/producer/KafkaProducer.html、https://www.confluent.io/blog/apache-kafka-security-authorization-authentication-encryption/、https://docs.confluent.io/current/kafka/authentication_ssl.html
我有 x.509 编码的 cert、private_key 和 ca 文件,我如何使用它们连接到 golang 中的 kafka(只是一个示例)是这样的
func connect(brokers []string, certs map[string][]byte) {
certpool := x509.NewCertPool()
certpool.AppendCertsFromPEM(certs["ca"])
c, err := tls.X509KeyPair(certs["cert"], certs["private_key"])
tls := tls.Config{
RootCAs: certpool,
ClientAuth: tls.NoClientCert,
ClientCAs: nil,
Certificates: []tls.Certificate{c},
}
config := sarama.NewConfig()
config.Producer.Return.Successes = true
config.Net.TLS.Enable = true
config.Net.TLS.Config = &tls
}
如何在 java 中复制相同的行为,也许我在这里遗漏了一些东西,但是否有任何我可以参考的 api/文档让我们配置 PEM 编码的内容而不是创建 keyStore?
【问题讨论】:
标签: java ssl apache-kafka