From 7ec7777b1a94eca50dbe93f66c16a30fe607e2a9 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 11 Oct 2025 17:31:24 +0800 Subject: [PATCH 1/2] This is an automated cherry-pick of #20986 Signed-off-by: ti-chi-bot --- enable-tls-between-components.md | 49 +++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/enable-tls-between-components.md b/enable-tls-between-components.md index 36dd1755e88b..b294852046bc 100644 --- a/enable-tls-between-components.md +++ b/enable-tls-between-components.md @@ -141,7 +141,7 @@ summary: 了解如何为 TiDB 集群内各组件间开启加密传输。 > **注意:** > > - 从 v8.4.0 起,PD 的 `cert-allowed-cn` 配置项支持设置多个值。你可以根据需要在 TiDB 的 `cluster-verify-cn` 配置项以及其它组件的 `cert-allowed-cn` 配置项中设置多个 `Common Name`。需要额外注意的是,TiUP 在查询组件状态的时候会使用独立的标识,比如集群名是 `test`,它会使用 `test-client` 作为 `Common Name`。 -> - 对于 v8.3.0 及之前版本,PD 的 `cert-allowed-cn` 配置项只能设置一个值。因此,所有认证对象的 `Common Name` 必须设置成同一个值。相关配置示例可参见 [v8.3.0 文档](https://docs.pingcap.com/zh/tidb/v8.3/enable-tls-between-components)。 +> - 对于 v8.3.0 及之前版本,PD 的 `cert-allowed-cn` 配置项只能设置一个值。因此,所有认证对象的 `Common Name` 必须设置成同一个值。相关配置示例可参见 [v8.3.0 文档](https://docs-archive.pingcap.com/tidb/v8.3/enable-tls-between-components/)。 - TiDB @@ -186,6 +186,53 @@ summary: 了解如何为 TiDB 集群内各组件间开启加密传输。 cert-allowed-cn = ["tidb", "tikv", "tiflash", "prometheus"] ``` +<<<<<<< HEAD +======= +- TiProxy(从 v1.4.0 版本开始引入) + + 在 `config` 文件中设置: + + ```toml + [security] + [server-http-tls] + cert-allowed-cn = ["tiproxy", "tidb", "test-client", "prometheus"] + ``` + +## 验证 TiDB 组件间的 TLS 配置 + +在为 TiDB 组件间通信配置 TLS 后,可以使用以下命令验证 TLS 是否已成功启用。这些命令会输出每个组件的证书和 TLS 握手详细信息。 + +- TiDB + + ```sh + openssl s_client -connect :10080 -cert /path/to/client.pem -key /path/to/client-key.pem -CAfile ./ca.crt < /dev/null + ``` + +- PD + + ```sh + openssl s_client -connect :2379 -cert /path/to/client.pem -key /path/to/client-key.pem -CAfile ./ca.crt < /dev/null + ``` + +- TiKV + + ```sh + openssl s_client -connect :20160 -cert /path/to/client.pem -key /path/to/client-key.pem -CAfile ./ca.crt < /dev/null + ``` + +- TiFlash (在 v4.0.5 版本引入) + + ```sh + openssl s_client -connect : -cert /path/to/client.pem -key /path/to/client-key.pem -CAfile ./ca.crt < /dev/null + ``` + +- TiProxy + + ```sh + openssl s_client -connect :3080 -cert /path/to/client.pem -key /path/to/client-key.pem -CAfile ./ca.crt < /dev/null + ``` + +>>>>>>> dd189e0cc3 (security: add steps to validate TLS between components (#20986)) ## 证书重新加载 - 如果 TiDB 集群部署在本地的数据中心,TiDB、PD、TiKV、TiFlash、TiCDC 和各种 client 在每次新建相互通讯的连接时都会重新读取当前的证书和密钥文件内容,实现证书和密钥的重新加载,无需重启 TiDB 集群。 From c07b8e51d1421d15fc38e3cf2527943e6399d5a2 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 13 Oct 2025 09:15:47 +0800 Subject: [PATCH 2/2] Apply suggestions from code review --- enable-tls-between-components.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/enable-tls-between-components.md b/enable-tls-between-components.md index b294852046bc..3cb356695d2a 100644 --- a/enable-tls-between-components.md +++ b/enable-tls-between-components.md @@ -186,18 +186,6 @@ summary: 了解如何为 TiDB 集群内各组件间开启加密传输。 cert-allowed-cn = ["tidb", "tikv", "tiflash", "prometheus"] ``` -<<<<<<< HEAD -======= -- TiProxy(从 v1.4.0 版本开始引入) - - 在 `config` 文件中设置: - - ```toml - [security] - [server-http-tls] - cert-allowed-cn = ["tiproxy", "tidb", "test-client", "prometheus"] - ``` - ## 验证 TiDB 组件间的 TLS 配置 在为 TiDB 组件间通信配置 TLS 后,可以使用以下命令验证 TLS 是否已成功启用。这些命令会输出每个组件的证书和 TLS 握手详细信息。 @@ -232,7 +220,6 @@ summary: 了解如何为 TiDB 集群内各组件间开启加密传输。 openssl s_client -connect :3080 -cert /path/to/client.pem -key /path/to/client-key.pem -CAfile ./ca.crt < /dev/null ``` ->>>>>>> dd189e0cc3 (security: add steps to validate TLS between components (#20986)) ## 证书重新加载 - 如果 TiDB 集群部署在本地的数据中心,TiDB、PD、TiKV、TiFlash、TiCDC 和各种 client 在每次新建相互通讯的连接时都会重新读取当前的证书和密钥文件内容,实现证书和密钥的重新加载,无需重启 TiDB 集群。