文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  ndb_sign_keys — 为 NDB 集群创建、签名和管理 TLS 密钥和证书

25.5.28 ndb_sign_keys — 为 NDB 集群创建、签名和管理 TLS 密钥和证书

NDB 集群中 TLS 密钥和证书的管理是通过可执行实用程序 ndb_sign_keys 实现的,该程序通常可以在 MySQL bin 目录中找到。该程序执行创建、签名和停用密钥和证书等功能,其工作原理通常如下:

  1. ndb_sign_keys 连接到 ndb_mgmd 并获取集群配置。

  2. 对于配置为在本地机器上运行的每个集群节点,ndb_sign_keys 会找到该节点的私钥并对其进行签名,从而创建一个活动的节点证书。

以下是 ndb_sign_keys 可以执行的一些其他任务:

  • 从 config.ini 文件而不是正在运行的 ndb_mgmd 获取配置信息

  • 创建集群证书颁发机构 (CA)(如果尚不存在)

  • 创建私钥

  • 将密钥和证书保存为待处理状态,而不是活动状态

  • 使用本节后面描述的命令行选项对指定单个节点的密钥进行签名

  • 请求位于远程主机上的 CA 对本地密钥进行签名

下表列出了可与 ndb_sign_keys 一起使用的选项。表格后面是其他说明。

  • --bind-host

    命令行格式 --bind-host=主机名
    类型 字符串
    默认值 mgmd, api

    创建一个证书,该证书绑定到应具有证书主机名绑定的节点类型的主机名列表,来自集合 (mgmd,db,api)

  • --bound-hostname

    命令行格式 --bound-hostname=主机名
    类型 字符串
    默认值 [无]

    创建一个绑定到传递给此选项的主机名的证书。

  • --CA-cert

    命令行格式 --CA-cert=名称
    类型 文件名
    默认值 NDB-Cluster-cert

    将传递给此选项的名称用于 CA 证书文件。

  • --CA-days

    命令行格式 --CA-days=#
    引入版本 8.4.1
    类型 整数
    默认值 1461
    最小值 -1
    最大值 2147483647

    将证书的生存期设置为这么多天。默认值相当于 4 年零 1 天。-1 表示证书永不过期。

    此选项在 NDB 8.4.1 中添加。

  • --CA-key

    命令行格式 --CA-key=名称
    类型 文件名
    默认值 NDB-Cluster-private-key

    将传递给此选项的名称用于 CA 私钥文件。

  • --CA-ordinal

    命令行格式 --CA-ordinal=名称
    类型 字符串
    默认值 [无]
    有效值

    First

    Second

    设置序数 CA 名称;--create-CA 默认为 First--rotate-CA 默认为 Second。CA 证书中的通用名称为 MySQL NDB 集群 序数 证书,其中 序数 是传递给此选项的序数名称。

  • --CA-search-path

    命令行格式 --CA-search-path=名称
    类型 文件名
    默认值 [无]

    指定要搜索 CA 文件的目录列表。在 Unix 平台上,目录名称用冒号 (:) 分隔;在 Windows 系统上,使用分号 (;) 作为分隔符。目录引用可以是相对的,也可以是绝对的;它可能包含一个或多个环境变量,每个变量都由前缀美元符号 ($) 表示,并在使用之前展开。

    搜索从最左侧命名的目录开始,从左到右进行,直到找到文件。空字符串表示空搜索路径,这会导致所有搜索失败。由单个点 (.) 组成的字符串表示搜索路径仅限于当前工作目录。

    如果没有提供搜索路径,则使用编译时默认值。此值取决于使用的平台:在 Windows 上,这是 $HOMEPATH\ndb-tls;在其他平台(包括 Linux)上,这是 $HOME/ndb-tls。可以使用 -DWITH_NDB_TLS_SEARCH_PATH 编译 NDB 集群来覆盖此默认值。

  • --CA-tool

    命令行格式 --CA-tool=名称
    类型 文件名
    默认值 [无]

    指定可执行的辅助工具,包括路径。

  • --check

    命令行格式 --check

    检查证书到期日期。

  • --config-file

    命令行格式 --config-file=文件
    禁用选项 no-config
    类型 文件名
    默认值 [无]

    提供集群配置文件的路径(通常为 config.ini)。

  • --connect-retries

    命令行格式 --connect-retries=#
    类型 整数
    默认值 12
    最小值 -1
    最大值 12

    设置 ndb_sign_keys 尝试连接到集群的次数。如果使用 -1,程序会一直尝试连接,直到成功或被迫停止。

  • --connect-retry-delay

    命令行格式 --connect-retry-delay=#
    类型 整数
    默认值 5
    最小值 0
    最大值 5

    设置连接尝试失败后 ndb_sign_keys 再次尝试之前的等待秒数,最长等待次数由 --connect-retries 确定。

  • --create-CA

    命令行格式 --create-CA

    创建 CA 密钥和证书。

  • --create-key

    命令行格式 --create-key

    创建或替换私钥。

  • --curve

    命令行格式 --curve=名称
    类型 字符串
    默认值 P-256

    使用指定的曲线加密节点密钥。

  • --defaults-extra-file

    命令行格式 --defaults-extra-file=路径
    类型 字符串
    默认值 [无]

    在读取全局文件后读取此选项文件。

  • --defaults-file

    命令行格式 --defaults-file=路径
    类型 字符串
    默认值 [无]

    仅读取此选项文件。

  • --defaults-group-suffix

    命令行格式 --defaults-group-suffix=字符串
    类型 字符串
    默认值 [无]

    不仅读取通常的选项组,还读取名称与通常名称相同但后缀为 字符串 的组。

  • --duration

    命令行格式 --duration=#
    类型 整数
    默认值 0
    最小值 -500000
    最大值 0
    单位

    设置证书或签名请求的生存期(以秒为单位)。

  • --help

    命令行格式 --help

    打印帮助文本并退出。

  • --keys-to-dir

    命令行格式 --keys-to-dir=目录名
    类型 目录名
    默认值 [无]

    指定私钥的输出目录(仅限私钥);为此,它将覆盖为 --to-dir 设置的任何值。

  • --login-path

    命令行格式 --login-path=路径
    类型 字符串
    默认值 [无]

    从登录文件中读取此路径。

  • --ndb-connectstring

    命令行格式 --ndb-connectstring=连接字符串
    类型 字符串
    默认值 [无]

    设置用于连接到 ndb_mgmd 的连接字符串,使用语法 [nodeid=id;][host=]主机名[:端口]]。如果设置了此选项,它将覆盖为 NDB_CONNECTSTRING 设置的值(如果有),以及在 my.cnf 文件中设置的任何值。

  • --ndb-mgm-tls

    命令行格式 --ndb-mgm-tls=级别
    类型 枚举
    默认值 relaxed
    有效值

    relaxed

    strict

    设置 ndb_mgm 客户端所需的 TLS 支持级别;可以是 relaxedstrictrelaxed(默认值)表示尝试进行 TLS 连接,但不要求成功;strict 表示连接需要 TLS。

  • --ndb-tls-search-path

    命令行格式 --ndb-tls-search-path=列表
    类型 路径名
    默认值 (Unix) $HOME/ndb-tls
    默认值 (Windows) $HOMEDIR/ndb-tls

    指定包含 TLS 密钥和证书的目录列表。

    有关语法的详细信息,请参阅 --CA-search-path 选项的描述。

  • --no-config

    命令行格式 --no-config

    不获取集群配置;根据提供的选项(包括未指定的选项的默认值)创建一个证书。

  • --no-defaults

    命令行格式 --no-defaults

    除了登录文件之外,不要从任何选项文件中读取默认选项。

  • --no-login-paths

    命令行格式 --no-login-paths

    不要从登录路径文件中读取登录路径。

  • --passphrase

    命令行格式 --passphrase=短语
    类型 字符串
    默认值 [无]

    指定 CA 密钥密码短语。

  • --node-id

    命令行格式 --node-id=#
    类型 整数
    默认值 0
    最小值 0
    最大值 255

    为具有指定节点 ID 的节点创建或签署密钥。

  • --node-type

    命令行格式 --node-type=集合
    类型 集合
    默认值 mgmd,db,api

    为集合 (mgmd,db,api) 中指定的类型创建或签署密钥。

  • --pending

    命令行格式 --pending

    将密钥和证书保存为待处理状态,而不是活动状态。

  • --print-defaults

    命令行格式 --print-defaults

    打印程序参数列表,然后退出。

  • --promote

    命令行格式 --promote

    将待处理文件提升为活动文件,然后退出。

  • --remote-CA-host

    命令行格式 --remote-CA-host=主机名
    类型 字符串
    默认值 [无]

    指定远程 CA 主机的地址或主机名。

  • --remote-exec-path

    命令行格式 --remote-exec-path
    类型 路径名
    默认值 [无]

    提供使用 --remote-CA-host 指定的远程 CA 主机上的可执行文件的完整路径。

  • --remote-openssl

    命令行格式 --remote-openssl

    使用 OpenSSL 对使用 --remote-CA-host 指定的远程 CA 主机上的密钥进行签名。

  • --replace-by

    命令行格式 --replace-by=#
    类型 整数
    默认值 -10
    最小值 -128
    最大值 127

    建议证书替换日期,以便定期检查,以 CA 到期日期后的天数表示。使用负数表示到期前的日期。

  • --rotate-CA

    命令行格式 --rotate-CA

    将旧 CA 替换为新 CA。可以使用 OpenSSL 创建新的 CA,或者您可以允许 ndb_sign_keys 创建新的 CA,在这种情况下,新的 CA 将使用由旧 CA 签名的中间 CA 证书创建。

  • --schedule

    命令行格式 --schedule=列表
    类型 字符串
    默认值 120,10,130,10,150,0

    为证书分配到期日期时间表。时间表定义为六个整数的逗号分隔列表,格式如下所示

    api_valid,api_extra,dn_valid,dn_extra,mgm_valid,mgm_extra

    这些值的定义如下

    • api_valid:客户端证书的固定有效天数。

      api_extra:客户端证书的额外天数。

      dn_valid:数据节点证书的客户端证书的固定有效天数。

      dn_extra:数据节点证书的额外天数。

      mgm_valid:管理服务器证书的固定有效天数。

      mgm_extra:管理服务器证书的额外天数。

    换句话说,对于每种节点类型(API 节点、数据节点、管理节点),创建的证书的生存期等于整个固定天数加上小于或等于额外天数的随机时间。默认时间表如下所示

    --schedule=120,10,130,10,150,0

    按照默认时间表,客户端证书在第 120 天开始到期,并在接下来的 10 天内随机间隔到期;数据节点证书在第 130 天和第 140 天之间的随机时间到期;管理节点证书在第 150 天到期(之后没有随机间隔)。

  • --sign

    命令行格式 --sign
    禁用选项 skip-sign

    创建签名证书;默认情况下启用。使用 --skip-sign 创建证书签名请求。

  • --skip-sign

    命令行格式 --skip-sign

    创建证书签名请求,而不是签名证书。

  • --stdio

    命令行格式 --stdio

    stdin 读取证书签名请求,并将 X.509 写入 stdout

  • --to-dir

    命令行格式 --to-dir=目录名
    类型 目录名
    默认值 [无]

    指定创建文件的输出目录。对于私钥文件,可以使用 --keys-to-dir 覆盖此目录。

  • --usage

    命令行格式 --usage

    打印帮助文本,然后退出(--help 的别名)。

  • --version

    命令行格式 --version

    打印版本信息,然后退出。