我必须连接https url,并且提供了.crt,.key和.csr文件。我正在尝试使用代码:
caCert, err := ioutil.ReadFile("file1.crt")
if err != nil {
fmt.Println("error in read crt")
fmt.Println(err)
}
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
cer, err := tls.LoadX509KeyPair("file1.crt", "file2.key")
if err != nil {
fmt.Println("cert load error")
fmt.Println(err.Error())
}
proxyUrl, _ := url.Parse("http://xxx.xxx.xxx.xx:yy")
client := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
ServerName: "abc.com",
RootCAs: caCertPool,
Certificates: []tls.Certificate{cer},
},
Proxy: http.ProxyURL(proxyUrl),
}}
req, err := http.NewRequest("POST", url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Set("id", id)
resp, err := client.Do(req)
我在代理和公司防火墙后面。当我尝试使用上述代码进行连接时,出现错误:
x509: certificate signed by unknown authority
为什么我遇到此错误。代码正确还是我做错了什么?