如何使用配置kafka进行tls通信 PEM
java客户机中的编码文件。我看到的所有文档都是关于创建和使用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
编码证书、私钥和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
?
1条答案
按热度按时间kuuvgm7e1#
你不能使用
PEM
直接用java编码秘密。使用
openssl
以及keytool
您可以将您的证书导入java客户机的jks。请参见将pem导入java密钥存储