生成自签名证书

    假设实例集群拓扑如下:

    假设使用 x86_64 Linux 主机:

    1. mkdir ~/cfssl
    2. cd ~/cfssl
    3. cfssl print-defaults config > ca-config.json
    4. cfssl print-defaults csr > ca-csr.json

    证书介绍

    • tidb-server certificate 由 TiDB 使用,为其他组件和客户端验证 TiDB 身份。
    • tikv-server certificate 由 TiKV 使用,为其他组件和客户端验证 TiKV 身份。
    • pd-server certificate 由 PD 使用,为其他组件和客户端验证 PD 身份。

    配置 CA 选项

    根据实际需求修改 ca-config.json

    1. {
    2. "signing": {
    3. "default": {
    4. "expiry": "43800h"
    5. },
    6. "profiles": {
    7. "expiry": "43800h",
    8. "usages": [
    9. "signing",
    10. "key encipherment",
    11. "server auth",
    12. "client auth"
    13. ]
    14. },
    15. "client": {
    16. "usages": [
    17. "signing",
    18. "key encipherment",
    19. "client auth"
    20. }
    21. }
    22. }
    23. }

    根据实际需求修改 ca-csr.json

    生成 CA 证书

    1. cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
    1. ca-key.pem
    2. ca.csr
    3. ca.pem

    生成服务器端证书

    hostname 中为各组件的 IP 地址,以及 127.0.0.1

    将会生成以下几个文件:

    1. tidb-server-key.pem tikv-server-key.pem pd-server-key.pem
    2. tidb-server.csr tikv-server.csr pd-server.csr
    3. tidb-server.pem tikv-server.pem pd-server.pem

    生成客户端证书