用golang将DSA密钥解析为tls配置对象。

问题描述 投票:0回答:1

我有一套DSA客户端私钥、客户端和CA证书文件,我想将其用于kafka-go库。我一直在尝试解析这些文件,但一直没有成功。上述的密钥和证书文件是正确的,因为它们被用在其他地方,虽然是用Javascript写的。我一直在尝试用以下方式解析它们。

func NewTLSConfig(clientCertFile, clientKeyFile, caCertFile string) (*tls.Config, error) {
    tlsConfig := tls.Config{}
    cert, err := tls.LoadX509KeyPair(clientCertFile, clientKeyFile
    ...

输入的字符串都是正确的文件路径。这时我得到以下错误。

tls: failed to parse private key

其来自 parsePrivateKey 的函数。检查函数的输入时,似乎没有问题。

cert.PrivateKey, err = parsePrivateKey(keyDERBlock.Bytes)

在检查该函数的输入时,似乎没有问题。键DERBlock 对象被填充,它有一个正确的类型和字节。可能是什么问题?谢谢你!我已经创建了一个小程序,它的类型和字节数都是正确的。

我已经创建了一个小的 Github repo 来说明这个问题。

go ssl apache-kafka private-key dsa
1个回答
0
投票

通过使用RSA密钥而不是DSA来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.