【发布时间】:2020-08-02 03:43:43
【问题描述】:
我有一组 DSA 客户端私钥、客户端和 CA 证书文件,我想将其与 kafka-go 库一起使用。我一直在尝试解析文件,但没有成功。上述密钥和证书文件是正确的,因为它们正在其他地方使用,但用 Javascript 编写。我一直在尝试以以下方式解析它们:
func NewTLSConfig(clientCertFile, clientKeyFile, caCertFile string) (*tls.Config, error) {
tlsConfig := tls.Config{}
cert, err := tls.LoadX509KeyPair(clientCertFile, clientKeyFile
...
字符串输入是正确的文件路径。此时我收到以下错误:
tls: 解析私钥失败
来自 tls 库的 parsePrivateKey 函数。检查函数的输入时,似乎没问题。
cert.PrivateKey, err = parsePrivateKey(keyDERBlock.Bytes)
keyDERBlock 对象已填充,它具有正确的类型和字节。可能是什么问题?谢谢!
我创建了一个小的Github repo 来说明这个问题。
【问题讨论】:
-
我们无法轻松调试不完整的 sn-ps。提供一个完整的可验证示例。
-
该函数需要文件路径作为输入,例如不确定如何使用 go playground 重现它。我可以创建一个简单的 git repo 来说明问题:)
-
一个好主意。最好在此处包含代码。我认为当您尝试将错误的最小再现放在一起时,您很有可能会发现解决方案 - 我通常会这样做。
-
是的,公平点。我在这里创建了一个小仓库:github.com/donfrigo/dsa-error。提前谢谢!
-
嗨,有人找到解决方案了吗? Go TLS 是否不支持 DSA?谢谢!
标签: go ssl apache-kafka private-key dsa