确保集群的证书使用正确
ClientV3
配置证书非常简单,进入源码首先可以看到Config
中TLS
配置使用的是标准包的tls.Config
type Config struct {...TLS *tls.Config...
}
构建一个标准包的*tls.Config
tlsInfo := transport.TLSInfo{CertFile: `client.pem`,KeyFile: `client-key.pem`,TrustedCAFile: `ca.pem`,}
config, err := tlsInfo.ClientConfig()
几个证书的作用请对照部署集群时命令行参数中所使用的证书
--cert-file = :用于与etcd的SSL/TLS连接的证书。设置此选项时,advertise-client-urls可以使用HTTPS模式。
--key-file = :证书的密钥。必须未加密。
--trusted-ca-file = :受信任的证书颁发机构。
将tls.Config
传入clientv3.Config
中即可
...
client, err := clientv3.New(clientv3.Config{Endpoints: endpoints,DialTimeout: dialTimeout,TLS: config,
})...