我正在尝试将PKI证书添加到HTTP客户端,以便对其发出的所有请求都进行身份验证,以使其与之通信。我可以通过执行以下操作来实例化HTTP客户端:
client := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyFromEnvironment,
TLSClientConfig: &tls.Config{
// TLS Implementation
}
}
}
这使用默认的RoundTripper
实现,其中包括TLS
配置部分。但是,TLS配置似乎在客户端和服务器之间共享。我需要添加以下哪些设置才能调用其他PKI服务?
答案 0 :(得分:1)
似乎只需要向TLS配置添加Certificates
属性:
Certificates: []tls.Certificate{cert}
可以使用辅助函数在cert
中创建的地方:
cert, err := tls.LoadX509KeyPair(*certFile, *keyFile)
certFile
和keyFile
是两个字符串,它们指向磁盘上的pem
文件。如Peter所述,您也可以实现GetClientCertificate
,但这对于实现PKI支持是不必要的。