生成自签名证书

    要在 TiDB 客户端与服务端间通信开启加密传输,你只需配置 参数。

    本文档提供使用 openssl 生成自签名证书的一个示例,用户也可以根据自己的需求生成符合要求的证书和密钥。

    假设实例集群拓扑如下:

    对于 Debian 或 Ubuntu 操作系统:

    对于 RedHat 或 CentOS 操作系统:

    1. yum install openssl

    也可以参考 OpenSSL 官方的进行安装。

    CA 的作用是签发证书。实际情况中,请联系你的管理员签发证书或者使用信任的 CA 机构。CA 会管理多个证书对,这里只需生成原始的一对证书,步骤如下:

      1. openssl genrsa -out root.key 4096
    1. 生成 root 证书:

      1. openssl req -new -x509 -days 1000 -key root.key -out root.crt
    2. 验证 root 证书:

      1. openssl x509 -text -in root.crt -noout
    • tikv certificate 由 TiKV 使用,为其他组件和客户端验证 TiKV 身份。
    • pd certificate 由 PD 使用,为其他组件和客户端验证 PD 身份。
    • client certificate 用于 PD、TiKV、TiDB 验证客户端。例如 pd-ctltikv-ctl 等。

    给 TiKV 实例签发证书的步骤如下:

    1. 生成该证书对应的私钥:

    2. 拷贝一份 OpenSSL 的配置模板文件。

      模板文件可能存在多个位置,请以实际位置为准:

      1. cp /usr/lib/ssl/openssl.cnf .

      如果不知道实际位置,请在根目录下查找:

      1. [ alt_names ]
      2. IP.1 = 127.0.0.1
      3. IP.2 = 172.16.10.14
      4. IP.4 = 172.16.10.16
    3. 签发生成证书:

    4. 验证证书携带 SAN 字段信息(可选):

      1. openssl x509 -text -in tikv.crt -noout
    5. 确认在当前目录下得到如下文件:

      1. root.crt
      2. tikv.crt
      3. tikv.key

    为其它 TiDB 组件签发证书的过程类似,此文档不再赘述。

    为客户端签发证书的步骤如下。

    1. 生成该证书对应的私钥:

      1. openssl genrsa -out client.key 2048
    2. 签发生成证书: