如何使用java中的“pem”编码文件为tls通信配置kafka

vi4fp9gy  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(516)

如何使用配置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 ?

kuuvgm7e

kuuvgm7e1#

你不能使用 PEM 直接用java编码秘密。
使用 openssl 以及 keytool 您可以将您的证书导入java客户机的jks。
请参见将pem导入java密钥存储

相关问题