如何在 Go 语言中使用 https 请求发送 cacert 、 cert 和 key ?
How to send cacert , cert and key with https request in GoLang?
我是 GoLang 新手。任何人都可以帮我处理以下 curl 请求的 GoLang 代码。
curl -v --cacert ca.crt --cert tls.crt --key tls.key --location --request POST 'https://<.......>' --header 'Content-Type: application/x-www-form-urlencoded'
来自 https://smallstep.com/hello-mtls/doc/combined/go/go 步骤 5。
这应该可以满足您的要求,您只需指定另一个 URL,并更改示例中的文件名。
// ...
caCert, _ := ioutil.ReadFile("ca.crt")
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
cert, _ := tls.LoadX509KeyPair("client.crt", "client.key")
client := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
RootCAs: caCertPool,
Certificates: []tls.Certificate{cert},
},
},
}
// Make a request
r, err := client.Get("https://myserver.internal.net:9443")
// ...
我是 GoLang 新手。任何人都可以帮我处理以下 curl 请求的 GoLang 代码。
curl -v --cacert ca.crt --cert tls.crt --key tls.key --location --request POST 'https://<.......>' --header 'Content-Type: application/x-www-form-urlencoded'
来自 https://smallstep.com/hello-mtls/doc/combined/go/go 步骤 5。
这应该可以满足您的要求,您只需指定另一个 URL,并更改示例中的文件名。
// ...
caCert, _ := ioutil.ReadFile("ca.crt")
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
cert, _ := tls.LoadX509KeyPair("client.crt", "client.key")
client := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
RootCAs: caCertPool,
Certificates: []tls.Certificate{cert},
},
},
}
// Make a request
r, err := client.Get("https://myserver.internal.net:9443")
// ...