【问题标题】:How do I add a PKI certificate to a Go HTTP request?如何将 PKI 证书添加到 Go HTTP 请求?
【发布时间】:2018-12-18 20:02:06
【问题描述】:

我正在尝试将 PKI 证书添加到 HTTP 客户端,以便它发出的所有请求都可以通过他们正在与之交谈的服务进行身份验证。我可以通过执行来实例化一个 HTTP 客户端:

client := &http.Client{
    Transport: &http.Transport{
        Proxy:                 http.ProxyFromEnvironment,
        TLSClientConfig: &tls.Config{
            // TLS Implementation
        }
    }
}

这使用默认的RoundTripper 实现,其中包括TLS 配置部分。但是,TLS 配置似乎在客户端和服务器之间共享。我需要添加哪些设置才能调用其他 PKI 服务?

【问题讨论】:

标签: go pki


【解决方案1】:

看来只需要在 TLS 配置中添加Certificates 属性即可:

Certificates: []tls.Certificate{cert}

cert 可以使用辅助函数创建:

cert, err := tls.LoadX509KeyPair(*certFile, *keyFile)

其中certFilekeyFile 是两个字符串,它们指向磁盘上的pem 文件。正如 Peter 所提到的,您还可以实现 GetClientCertificate,但这对于实现 PKI 支持是不必要的。

【讨论】:

    猜你喜欢
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多