tidb集群证书问题求助

开启enable_tls: true后,tikv和pd各配置了一份证书,另外tiup display出来又有一份证书。
tiup cluster display xxxxX信息如下:
Cluster type: tidb
Cluster name: xxxxX
Cluster version: v6.5.0
Deploy user: tikvxxxx
SSH type: builtin
TLS encryption: enabled
CA certificate: /root/.tiup/storage/cluster/clusters/xxxxX/tls/ca.crt
Client private key: /root/.tiup/storage/cluster/clusters/X/tls/client.pem
Client certificate: /root/.tiup/storage/cluster/clusters/X/tls/client.crt

  1. 这三份证书都有什么用途?????
  2. tikv和pd的cert-allowed-cn配置,应该各配置什么值?

1.用周边工具的时候,要使用这些证书: 专栏 - TiDB 生产集群与加密通讯TLS的辛酸苦辣 - 工具篇 | TiDB 社区
2.集群开启了tls之后,证书相关配置都已经写在配置文件中了,可以到tikv和pd节点的配置文件中查看

1 个赞

能帮忙解答下cert-allowed-cn这个配置应该怎么配置吗?我配置tikv配置pd证书的CN,pd配置tikv证书的CN,发现pd还是拒绝tikv的请求,非常感谢


尝试这样配置一下呢

1 个赞

如果你使用 cfssl,必须使用和原集群相同的 CA (Certification Authority) 颁发。你需要执行使用 cfssl 系统颁发证书文档中 5~7 步,完成新集群组件间证书签发。

tikv-ctl 提供以下两种运行模式:

  • 远程模式。通过 --host 选项接受 TiKV 的服务地址作为参数。在此模式下,如果 TiKV 启用了 SSL,则 tikv-ctl 也需要指定相关的证书文件,例如:
tikv-ctl --ca-path ca.pem --cert-path client.pem --key-path client-key.pem --host 127.0.0.1:20160 <subcommands>

某些情况下,tikv-ctl 与 PD 进行通信,而不与 TiKV 通信。此时你需要使用 --pd 选项而非 --host 选项,例如:

tikv-ctl --pd 127.0.0.1:2379 compact-cluster
store:"127.0.0.1:20160" compact db:KV cf:default range:([], []) success!
  • 本地模式
    • 通过 --data-dir 选项来指定本地 TiKV 数据的目录路径。
    • 通过 --config 选项来指定本地 TiKV 配置文件到路径。在此模式下,需要停止正在运行的 TiKV 实例。

以下如无特殊说明,所有命令都同时支持这两种模式。

除此之外,tikv-ctl 还有两个简单的命令 --to-hex--to-escaped,用于对 key 的形式作简单的变换。一般使用 escaped 形式,示例如下:

tikv-ctl --to-escaped 0xaaff
\252\377
tikv-ctl --to-hex "\252\377"
AAFF

注意

在命令行上指定 escaped 形式的 key 时,需要用双引号引起来,否则 bash 会将反斜杠吃掉,导致结果错误。

居然还有这种文档:https://docs.pingcap.com/zh/tidb/stable/generate-self-signed-certificates#集群中可能使用到的证书

pd没有cert-allowed-cn这个指令吗?开起来会提示认证错误?

我写一部分吧,tikv的cert-allowed-cn:
可以配置为PD服务器的主机名、主机IP或DNS名称。
这个设置用于控制TiKV连接到PD的服务器,只有当服务器的主机名或IP与此配置相匹配时,连接才会被信任。

再问下,如果pd也要校验客户端的身份,应该如何配置,感谢!!!