登录
首页 >  Golang >  Go问答

在 GoLang 中如何使用 HTTPS 发送请求并提供 cacert、cert和key?

来源:stackoverflow

时间:2024-02-21 08:00:18 303浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《在 GoLang 中如何使用 HTTPS 发送请求并提供 cacert、cert和key?》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我是 go 语言新手。任何人都可以帮我编写 golang 中的代码来执行以下curl 请求。

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 中如何使用 HTTPS 发送请求并提供 cacert、cert和key?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>