golang https x509: certificate signed by unknown authority解决

某管理口页面使用的证书文件是不被浏览器识别的,在使用python requests进行页面请求时,在linux下忽略ssl正常,在windos使用就提示SSLv3 handler error,所以改用golang进行页面访问,结果提示“x509: certificate signed by unknown authority”错误。使用golang代码类似如下:



<br />
package main
import (
    "fmt"
    "io/ioutil"
    "net/http"
)
func main() {
    resp, err := http.Get("https://localhost:8081")
    if err != nil {
        fmt.Println("error:", err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
网上查了下,可以在认证的时候,忽略证书校验,具体操作如下:



<br />
package main
import (
    "crypto/tls"
    "fmt"
    "io/ioutil"
    "net/http"
)
func main() {
    tr := &http.Transport{
        TLSClientConfig:    &tls.Config{InsecureSkipVerify: true},
    }
    client := &http.Client{Transport: tr}
    resp, err := client.Get("https://localhost:8081")
    if err != nil {
        fmt.Println("error:", err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
通过设置tls.Config的InsecureSkipVerify为true,client将不再对服务端的证书进行校验。就可以正常获取结果了,同样post请求也是知用的。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注