TLS客户端服务器的证书链验证,无需服务器名验证

时间:2019-07-31 10:02:57

标签: go ssl tls1.2

是否可以通过crypto/tls软件包在Go TLS客户端中不验证服务器名称的情况下进行服务器的证书链验证?

如下面的代码片段所示,如果我们不提供任何服务器名称,则会出现类似

的错误
  

tls:服务器名称或InsecureSkipVerify必须在   tls.Config

rootCA := x509.NewCertPool()
caCert, _ := ioutil.ReadFile("/path/to/ca_cert.pem")
rootCA.AppendCertsFromPEM(caCert)

tlsConfig = tls.Config{
    RootCAs:    rootCA,
    ServerName: "xyz.com",
}

conn, _ := net.Dial("tcp", "ip:port")

c := tls.Client(conn, &tlsConfig)
c.Handshake()

我有一个要求,即仅需要服务器的证书链验证,而无需服务器名称验证,但是使用Go的crypto/tls软件包,两个验证都作为一个单元耦合。

0 个答案:

没有答案