获取"https://zzzztower.zzzz.com/api/v2/hosts/":x509:证书依赖于旧版公用名字段,请改用 SAN。



我试图使用这里定义的API从可见塔获得主机列表我使用的是可视塔URL ->https://zzzztower.zzzz.com/api/v2/hosts/不记名令牌->aaaaaaaaaaaaaaaaaaaaaaaaaaa

当我使用邮差来击中API时,我得到了一个适当的响应但是当我使用golang代码时,我得到错误

获取"https://ansibletower.micron.com/api/v2/hosts/": x509:证书依赖于旧的通用名称字段,使用san代替

下面是我的代码:
package globals
import (
"fmt"
"io/ioutil"
"net/http"
)
// var AUTH_TOKEN string = os.Getenv("AUTH_TOKEN")
func GetAnsibleHosts() (string, error) {
url := "https://zzzztower.zzzz.com/api/v2/hosts/"
method := "GET"
client := &http.Client{}
req, err := http.NewRequest(method, url, nil)
if err != nil {
return "", fmt.Errorf("Error creating request: %v", err)
}
bearerToken := "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
// Add the Bearer Auth token to the request
req.Header.Add("Authorization", "Bearer "+bearerToken)
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return "", err
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return "", err
}
// fmt.Println(string(body))
return string(body), err
}

我试着在谷歌上找到错误,但我没有找到太多的帮助。很少有文章提到使用GODEBUG=x509ignoreCN=0,但它不起作用。

我真的很感激你的帮助。

要跳过此检查,我们可以使用InsecureSkipVerify并将其设置为true.

像这样:

// Create a new transport with InsecureSkipVerify set to true
transport := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
// Create a new client using the transport
client := &http.Client{Transport: transport}

然后这个client可以用来得到响应。

PS:这对我有用,但其他人请建议一个更好的方法。

最新更新