我正在将一款应用从php转换为go,并且无法弄清如何验证给定服务器的SSL证书是否由我们的私钥签名。 在php中只需要使用以下代码: openssl_x509_check_private_key($cert, $pkey) 我可以验证主机的开始/结束日期和有效性,但是看不到可以这样做的方法。
openssl_x509_check_private_key的文档实际上没有说明参数是什么。我会假设它们要么是PEM编码数据的文件名,要么是直接的PEM编码数据(字符串)。在这种情况下,您可以简单地调用tls.LoadX509KeyPair或tls.X509KeyPair,这将检查证书和密钥是否匹配。如果您对执行实际检查的低级API感兴趣,请检查tls.X509KeyPair的源代码(搜索x509.ParseCertificate)。