gpt4 book ai didi

带有 Kafka-Go 和证书的 Golang TLS。无连接

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:47 27 4
gpt4 key购买 nike

我需要使用信任库和 keystore 与我的客户端建立 TLS 连接。我的商店是P12格式的。我的 keystore 只有一把私钥和一把公钥。我的信任库只有一个集群证书。

我的问题是,我没有连接到我的 ssl-Kafka。可能握手失败,但 kafka-go 不打印任何消息。

下面是我的代码。也许有配置问题?有谁知道我如何打印错误?或者我的配置错误在哪里?


getKafkaReader(topic string) *kafka.Reader {

if consumer == nil {
consumer = kafka.NewReader(kafka.ReaderConfig{
Brokers: []string{kafkaConfig.Host},
GroupID: os.Getenv("KAFKA_CONSUMER_GROUP"),
Topic: topic,
Partition: 0,
MinBytes: 10e2, // 1KB
MaxBytes: 10e5, // 1MB
Dialer: getDialer(),
})
}
return consumer
}

func getDialer() *kafka.Dialer {

dialer := &kafka.Dialer{
Timeout: 5 * time.Second,
DualStack: true,
TLS: tlsConfig(),
}

return dialer
}

func tlsConfig() *tls.Config {

// Keystore
keys, _ := ioutil.ReadFile(kafkaConfig.KeyStoreLocation)
blocks, err := p12.ToPEM(keys, kafkaConfig.KeyStorePassword)
if err != nil {
log.Fatal(err.Error())
}

var pemData []byte
for test, b := range blocks {
_ = test
pemData = append(pemData, pem.EncodeToMemory(b)...)
}

cert, err := tls.X509KeyPair(pemData, pemData)
if err != nil {
log.Fatal(err.Error())
}
//Truststore
caCert, err := ioutil.ReadFile("./certificates/ca.pem")
if err != nil {
log.Fatal(err)
}

caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)

config := &tls.Config{
Certificates: []tls.Certificate{cert},
RootCAs: caCertPool,
}
return config
}

最佳答案

我有答案。我有自签名证书。这就是为什么我必须设置

tlsConfig.InsecureSkipVerify = true

关于带有 Kafka-Go 和证书的 Golang TLS。无连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59100599/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com