如何在Go HTTP请求中添加PKI证书?

I'm trying to add a PKI certificate to an HTTP client, so that all requests made by it are authenticated to the services they are talking to. I can instantiate an HTTP client by executing:

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

This uses the default RoundTripper implementation, which includes a TLS configuration section. However the TLS configuration appears to be shared between client and server. Which of these settings do I need to add so that I can call other PKI services?

It appears that one only needs to add the Certificates attribute to the TLS configuration:

Certificates: []tls.Certificate{cert}

Where cert can be created using the helper function:

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

Where certFile and keyFile are two strings which point to pem files on disk. As mentioned by Peter, you can also implement GetClientCertificate, but that is unnecessary for implementing PKI support.