为了账号安全,请及时绑定邮箱和手机立即绑定

Golang TLS 与 Kafka-Go 和证书。无连接

Golang TLS 与 Kafka-Go 和证书。无连接

Go
Smart猫小萌 2023-08-07 15:18:53
我需要使用信任库和密钥库与客户端建立 TLS 连接。我的商店采用 P12 格式。我的密钥库只有一把私钥和一把公钥。我的信任库只有一个集群证书。我的问题是,我无法连接到我的 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}
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

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

tlsConfig.InsecureSkipVerify = true


查看完整回答
反对 回复 2023-08-07
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信