相关疑难解决方法(0)

如何将 SAN 与 openSSL 而不是通用名称一起使用?

升级使用 golang 1.15.0-rc.1 的系统 (kubernetes) 后,我被困在此错误消息上:

"x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0". 
Run Code Online (Sandbox Code Playgroud)

我使用通用名称(我知道的)的唯一地方是我为我的服务生成私钥时openssl req -new -key certs/foo-bar.pem -subj "/CN=foobar.mydomain.svc" -out certs/foo-bar.csr -config certs/foo-bar_config.txt

如何将此命令转换为使用 SAN?

openssl

15
推荐指数
2
解决办法
1万
查看次数

x509:无法验证 <host ip> 的证书,因为它不包含任何 IP SAN

我开发了一个 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)

go x509certificate

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

go ×1

openssl ×1

x509certificate ×1