📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

TiDB Cloud Starter 或 Essential 的 TLS 连接



在你的客户端与 TiDB Cloud Starter 或 TiDB Cloud Essential 实例之间建立安全的 TLS 连接,是连接数据库的基本安全实践之一。TiDB Cloud 的服务器证书由独立的第三方证书颁发机构签发。你可以无需下载服务器端数字证书,轻松连接到你的 TiDB Cloud Starter 或 Essential 实例。

前置条件

连接到 TiDB Cloud Starter 或 Essential 实例的 TLS 连接

TiDB Cloud 控制台 中,你可以获取不同连接方式的示例,并按如下方式连接到你的 TiDB Cloud Starter 或 Essential 实例:

  1. 进入 My TiDB 页面,然后点击你的 TiDB Cloud Starter 或 Essential 实例名称,进入其实例概览页。

  2. 点击右上角的 Connect。此时会显示一个对话框。

  3. 在对话框中,保持连接类型的默认设置为 Public,然后选择你偏好的连接方式和操作系统。

  4. 如果你尚未设置密码,点击 Generate Password 为你的 TiDB Cloud Starter 或 Essential 实例生成一个随机密码。该密码会自动嵌入示例连接字符串中,方便你轻松连接到你的 TiDB Cloud Starter 或 Essential 实例。

  5. 使用连接字符串连接到你的 TiDB Cloud Starter 或 Essential 实例。

根证书管理

根证书的颁发与有效期

TiDB Cloud 使用 Let's Encrypt 作为客户端与 TiDB Cloud Starter 或 Essential 实例之间 TLS 连接的证书颁发机构(CA)。一旦 TiDB Cloud 证书过期,将自动轮换,不会影响你的 TiDB Cloud Starter 或 Essential 实例正常运行及已建立的 TLS 安全连接。

如果客户端默认使用系统的根 CA 存储(如 Java 和 Go),你可以无需指定 CA 根路径,直接安全地连接 TiDB Cloud Starter 或 Essential 实例。但部分驱动和 ORM 并不使用系统根 CA 存储,这种情况下,你需要将驱动或 ORM 的 CA 根路径配置为系统根 CA 存储。例如,在 macOS 上使用 mysqlclient 通过 Python 连接 TiDB Cloud Starter 或 Essential 实例时,需要在 ssl 参数中设置 ca: /etc/ssl/cert.pem

如果你使用的是如 DBeaver 这样的 GUI 客户端,且该客户端不接受包含多个证书的证书文件,则必须下载 ISRG Root X1 证书。

根证书默认路径

在不同操作系统中,根证书的默认存储路径如下:

MacOS

/etc/ssl/cert.pem

Debian / Ubuntu / Arch

/etc/ssl/certs/ca-certificates.crt

RedHat / Fedora / CentOS / Mageia

/etc/pki/tls/certs/ca-bundle.crt

Alpine

/etc/ssl/cert.pem

OpenSUSE

/etc/ssl/ca-bundle.pem

Windows

Windows 没有提供特定的 CA 根路径,而是通过 注册表 存储证书。因此,在 Windows 上指定 CA 根路径时,请按以下步骤操作:

  1. 下载 ISRG Root X1 证书,并将其保存到你选择的路径(如 <path_to_ca>)。
  2. 连接到 TiDB Cloud Starter 或 Essential 实例时,将该路径(<path_to_ca>)作为你的 CA 根路径。

常见问题

连接到我的 TiDB Cloud Starter 或 Essential 实例支持哪些 TLS 版本?

出于安全原因,TiDB Cloud 仅支持 TLS 1.2 和 TLS 1.3,不支持 TLS 1.0 和 TLS 1.1。详情参见 IETF 的 Deprecating TLS 1.0 and TLS 1.1

我的连接客户端与 TiDB Cloud 支持双向 TLS 认证吗?

不支持。

TiDB Cloud 仅支持单向 TLS 认证,即你的客户端使用公钥验证 TiDB Cloud 集群证书私钥的签名,而集群不会验证客户端。

TiDB Cloud 是否必须配置 TLS 才能建立安全连接?

对于标准连接,TiDB Cloud 只允许 TLS 连接,禁止非 SSL/TLS 连接。原因是 SSL/TLS 是你通过互联网连接到 TiDB Cloud Starter 或 Essential 实例时,降低数据暴露风险的最基本安全措施之一。

对于私有终端节点连接,由于其支持高度安全的单向访问 TiDB Cloud 服务且不会将你的数据暴露在公网,是否配置 TLS 是可选的。

文档内容是否有帮助?