是否可以通过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
软件包,两个验证都作为一个单元耦合。