登录
首页 >  Golang >  Go问答

x509证书缺少IP SAN字段,无法验证<主机 IP>

来源:stackoverflow

时间:2024-03-07 09:09:17 342浏览 收藏

大家好,我们又见面了啊~本文《x509证书缺少IP SAN字段,无法验证》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我开发了一个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: &http.Transport{
            TLSClientConfig: tlsConfig,
        },
    }

    // Make buffer
    var requestDataBuffer bytes.Buffer
    err := xml.NewEncoder(&requestDataBuffer).Encode(requestData)

    logrus.Info("[ProxyRequest] URL: ", urlLink)
    logrus.Info("[ProxyRequest] Data: ", requestDataBuffer.String())

    // Build a new request, but not doing the POST yet
    req, err := http.NewRequest("POST", urlLink, &requestDataBuffer)
    if err != nil {
        return err
    }

    // Keep on client
    o.req = req

    // Fill default header
    o.fillHeader()

    return nil
}

正确答案


服务器证书的主题与您在代码中使用的 URL 不匹配。具体来说,您可能在 URL 中使用了 IP 地址,并且服务器证书不包含此 IP 地址(或任何其他 IP 地址)的主题备用名称扩展 (SAN),因此“不包含任何 IP SAN”)

造成这种不匹配的原因是您使用了错误的 URL 或服务器证书错误。

终于介绍完啦!小伙伴们,这篇关于《x509证书缺少IP SAN字段,无法验证》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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