我开发了一个 NewRequestWithCert 函数,该函数创建新的soap.client并使用证书文件中的证书,并且在soap.client.Do之后它返回x509:无法验证证书,因为它不包含任何IP SAN。我的代码有什么问题吗?
func (o *Client) NewRequestWithCert(urlLink string, requestData interface{}, responseData interface{}, certName string, host string) error {
// Keep on client
o.requestData = &requestData
o.responseData = &responseData
o.url = urlLink
certByte, errCert := ioutil.ReadFile("/app/certificates/" + certName)
if errCert != nil {
logrus.Errorf("cert err: %v", errCert)
return errCert
}
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(certByte)
logrus.Debug("certByte : ", certByte)
tlsConfig := &tls.Config{
ServerName: host,
ClientCAs: caCertPool,
ClientAuth: tls.RequireAndVerifyClientCert,
}
// New http client
o.client = &http.Client{
Timeout: 30 * time.Second,
Transport: …
Run Code Online (Sandbox Code Playgroud)