【 TiDB 使用环境】测试
【 TiDB 版本】V6.5
请问各位大佬有没有开启过集群TLS并使用TiSpark的?
开启TLS后TiSpark该怎么配置呢?
这个是tidb组件之间的证书。
https://docs.pingcap.com/zh/tidb/stable/enable-tls-between-components#证书重新加载
是这个文档上的内容,我不清楚你是否开了这个TLS,如果tidb组件之间没有开TLS,我觉得可以不用配置。
组件之间开了的
tiup cluster tls xxx enable
就是由于组件开了TLS,spark要连PD,不知道配置怎么写,看这个文档 https://docs.pingcap.com/zh/tidb/stable/tispark-overview#tls-配置没看明白。
按顺序来,tidb有2种TLS.
1种是tidb组件之间的TLS
https://docs.pingcap.com/zh/tidb/stable/enable-tls-between-components#为-tidb-组件间通信开启加密传输
第2种是TiDB 服务端与客户端之间的TLS
https://docs.pingcap.com/zh/tidb/stable/enable-tls-between-clients-and-servers#为-tidb-客户端服务端间通信开启加密传输
然后,tispark配置里面
spark.tispark.tikv
开头的都是指tidb组件之间的TLS配置也就是第一种。
spark.tispark.jdbc
上面这个开头的指的是tidb服务端和客户端之间的TLS,也就是第二种。
连pd应该使用tidb组件之间的TLS证书,使用
spark.tispark.tikv
开头的配置项来配置。
如果是TLS已经开了的情况下,这些证书应该是已经生成好的。
只不过要找找位置在哪里。
在tidb的配置文件中 security下
https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#ssl-ca
能同时找到2种TLS证书的位置。当然这2种证书有可能配置的是一样的。
试了各种组合都不对
都是报这个
ERROR ChannelFactory: Failed to create ssl context builder
File does not contain valid private key
翻了下感觉是cluster-ssl-key这个参数对应的文件有什么问题。
应该是你上面这个图里面的tidb.pem。
上面这个链接你可以参考一下。里面大致说到两个方向排查
1是可以通过
openssl rsa -in [tidb.pem] -check
看看这个文件到底是不是一个openssl认为的有效的key。
2,java对证书格式有些要求,不清楚当时是怎么生成的。可能是证书格式的问题。
OpenSSL changed the default PKCS#5, v1.5 format to PKCS#5, v2 in OpenSSL 1.1.0. The JDK has a long outstanding issue with PKCS#5, v2. In short, PKCS#5, v2 does not work.
应该是.pem这个文件格式的问题,openssl rsa -in [tidb.pem] -check没有异常,就是个正常的rsa私钥。
tispark 只支持 pkcs8 的 key,而 tiup 生成的是 pkcs1 的 key,转换一下就可以用了。
感谢帮忙分析
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。