tikv的go-client如何配置tls证书?

请教下各位tikv专家~ go-client如何配置tls证书?

看了下代码,并没有参数可以提交证书的path…也不能传config,代码里面也没看到有什么默认的目录可以放config文件,请问下大家怎么支持tls的证书呢

1 个赞

试试这样行不行:

func initStore() {
	cfg := config.DefaultConfig()
	cfg.Security = config.NewSecurity("ca.crt", "client.crt", "client.key", nil)
	config.StoreGlobalConfig(&cfg)

	var err error
	client, err = tikv.NewTxnClient([]string{*pdAddr})
	if err != nil {
		panic(err)
	}
}
1 个赞

感谢~

参考了security_test.go (5.1 KB) 客户端里 security_test.go 传递证书的逻辑,也试着将ca参数(NewSecurity的第一个参数)使用root.crt也是一样的异常,异常如下:

文件已经放到机器指定目录:
cfg.Security = config.NewSecurity(“/root/tikv-client-tls/client.crt”, “/root/tikv-client-tls/client.crt”, “/root/tikv-client-tls/client.key”, nil)

[2022/02/17 23:13:58.081 +08:00] [WARN] [base_client.go:250] [“[pd] failed to get cluster id”] [url=https://node1.juicefs-tikv.sys.xxxx.com:2379] [error=“[PD:client:ErrClientGetMember]error:rpc error: code = Unavailable desc = connection error: desc = "transport: authentication handshake failed: x509: certificate is not valid for any names, but wanted to match node1.juicefs-tikv.sys.xxxx.com" target:node1.juicefs-tikv.sys.xxxx.com:2379 status:TRANSIENT_FAILURE”]

2 个赞

正好也在搞这个事情,感谢!

应该是证书的生成有问题,看看访问的地址是不是 SAN 指定的

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。