Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  ndb_sign_keys — Create, Sign, and Manage TLS Keys and Certificates for NDB Cluster

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 一起使用的选项如下表所示。后续描述将在表格后面。

表 25.48 与程序 ndb_sign_keys 一起使用的命令行选项

Format Description Added, Deprecated, or Removed

--bind-host=host

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

ADDED: 8.3.0

--bound-hostname=hostname

创建绑定到这个主机名的证书

ADDED: 8.3.0

--CA-cert=name,

-C

集群 CA 证书文件名

ADDED: 8.3.0

--CA-key=name,

-K

集群 CA 私钥文件名

ADDED: 8.3.0

--CA-ordinal=name

序号 CA 名称;默认为 "First" 用于 --create-CA 和 "Second" 用于 --rotate-CA

ADDED: 8.3.0

--CA-search-path=name

集群 CA 文件搜索路径

ADDED: 8.3.0

--CA-tool=name,

-X

本地可执行帮助工具路径

ADDED: 8.3.0

--check

运行证书到期日期的周期性检查

添加:8.3.0

--config-file=file,

-f file

从这个文件中读取集群配置。

添加:8.3.0

--connect-retries=#

在放弃之前重试连接的次数

添加:8.3.0

--connect-retry-delay=#

在尝试联系管理服务器之间等待的秒数

添加:8.3.0

--create-CA

创建集群CA

添加:8.3.0

--create-key

创建或替换私钥

添加:8.3.0

--curve=name

用于节点密钥的命名曲线

添加:8.3.0

--defaults-extra-file=path

在全局文件读取后读取给定的文件

添加:8.3.0

--defaults-file=path

仅从给定的文件中读取默认选项

添加:8.3.0

--defaults-group-suffix=string

也读取带有concat(group, suffix)的组

添加:8.3.0

--duration=#

证书签名请求的生命周期,以秒为单位

添加:8.3.0

--help,

-?

显示帮助文本并退出

添加:8.3.0

--keys-to-dir=dirname

私钥的输出目录(仅限私钥); 覆盖--to-dir

添加:8.3.0

--login-path=path

从登录文件中读取给定的路径

添加:8.3.0

--ndb-connectstring=connection_string,

-c connection_string

设置连接字符串以连接到ndb_mgmd。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖NDB_CONNECTSTRING和my.cnf中的条目

添加:8.3.0

--ndb-mgm-tls=level

ndb_mgm客户端TLS要求级别

添加:8.3.0

--ndb-tls-search-path=list

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

添加:8.3.0

--no-config,

-l

不获取集群配置; 创建单个证书

添加:8.3.0

--no-defaults

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

添加:8.3.0

--no-login-paths

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

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--passphrase=phrase

用于签名密钥的密码短语

添加于:8.3.0

--node-id=#,

-n

为具有此 ID 的节点创建或签名密钥

添加于:8.3.0

--node-type=set,

-t

为一个或多个节点类型(mgmd、db、api)创建或签名密钥

添加于:8.3.0

--pending

将密钥或证书保存为待定,而不是活动的

添加于:8.3.0

--print-defaults

打印程序参数列表并退出

添加于:8.3.0

--promote

将待定文件提升为活动,然后退出

添加于:8.3.0

--remote-CA-host=hostname

远程 CA 主机的地址

添加于:8.3.0

--remote-exec-path

远程 CA 主机上的可执行文件的完整路径;必须以 'ndb_sign_keys[.exe]' 或 'openssl[.exe]' 结尾

添加于:8.3.0

--remote-openssl

在 CA 主机上运行 OpenSSL 以签名密钥

添加于:8.3.0

--replace-by=#

建议的证书替换日期,以天数表示,负数表示到期日之前的天数

添加于:8.3.0

--rotate-CA

旋转集群 CA

添加于:8.3.0

--schedule=list

证书的到期日期计划;请参阅文档以获取详细信息

添加于:8.3.0

--sign

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

添加于:8.3.0

--skip-sign

创建证书签名请求

添加于:8.3.0

--stdio

从标准输入读取 CSR,从标准输出写入 X.509

添加于:8.3.0

--to-dir=dirname

创建文件的输出目录

添加于:8.3.0

--usage,

-?

显示帮助文本并退出;与 --help 相同

添加于:8.3.0

--version,

-V

显示版本信息并退出

添加于:8.3.0


  • --bind-host

    Command-Line Format --bind-host=host
    Type 字符串
    Default Value mgmd, api

    创建绑定到主机名列表的证书,来自节点类型集(mgmd、db、api).

  • --bound-hostname

    Command-Line Format --bound-hostname=hostname
    Type 字符串
    Default Value [none]

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

  • --CA-cert

    Command-Line Format --CA-cert=name
    Type 文件名
    Default Value NDB-Cluster-cert

    使用传递给该选项的名称作为CA证书文件。

  • --CA-key

    Command-Line Format --CA-key=name
    Type 文件名
    Default Value NDB-Cluster-private-key

    使用传递给该选项的名称作为CA私钥文件。

  • --CA-ordinal

    Command-Line Format --CA-ordinal=name
    Type 字符串
    Default Value [none]
    Valid Values

    First

    Second

    设置CA名称的序号;默认为 First 对于 --create-CASecond 对于 --rotate-CA。CA证书中的公共名称是 MySQL NDB Cluster ordinal Certificate,其中 ordinal 是传递给该选项的序号名称。

  • --CA-search-path

    Command-Line Format --CA-search-path=name
    Type 文件名
    Default Value [none]

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

    搜索从左到右进行,直到找到文件。空字符串表示空搜索路径,导致所有搜索失败。点 (.) 表示搜索路径仅限于当前工作目录。

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

  • --CA-tool

    Command-Line Format --CA-tool=name
    Type 文件名
    Default Value [none]

    指定一个可执行的帮助工具,包括路径。

  • --check

    Command-Line Format --check

    检查证书的到期日期。

  • --config-file

    Command-Line Format --config-file=file
    Disabled by no-config
    Type 文件名
    Default Value [none]

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

  • --connect-retries

    Command-Line Format --connect-retries=#
    Type 整数
    Default Value 12
    Minimum Value -1
    Maximum Value 12

    设置ndb_sign_keys尝试连接到集群的次数。如果您使用-1,程序将继续尝试连接直到成功或被强制停止。

  • --connect-retry-delay

    Command-Line Format --connect-retry-delay=#
    Type 整数
    Default Value 5
    Minimum Value 0
    Maximum Value 5

    设置ndb_sign_keys在连接尝试失败后等待的秒数,然后再次尝试连接,直到达到--connect-retries确定的次数。

  • --create-CA

    Command-Line Format --create-CA

    创建 CA 密钥和证书。

  • --create-key

    Command-Line Format --create-key

    创建或替换私钥。

  • --curve

    Command-Line Format --curve=name
    Type 字符串
    Default Value P-256

    使用命名曲线来加密节点密钥。

  • --defaults-extra-file

    Command-Line Format --defaults-extra-file=path
    Type 字符串
    Default Value [none]

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

  • --defaults-file

    Command-Line Format --defaults-file=path
    Type 字符串
    Default Value [none]

    仅读取此选项文件。

  • --defaults-group-suffix

    Command-Line Format --defaults-group-suffix=string
    Type 字符串
    Default Value [none]

    读取不仅是通常的选项组,还包括具有通常名称和string后缀的组。

  • --duration

    Command-Line Format --duration=#
    Type 整数
    Default Value 0
    Minimum Value -500000
    Maximum Value 0
    Unit

    设置证书或签名请求的生命周期,以秒为单位。

  • --help

    Command-Line Format --help

    打印帮助文本并退出。

  • --keys-to-dir

    Command-Line Format --keys-to-dir=dirname
    Type 目录名称
    Default Value [none]

    指定私钥的输出目录(仅限私钥); 对于这个目的,它覆盖了--to-dir的任何值。

  • --login-path

    Command-Line Format --login-path=path
    Type 字符串
    Default Value [none]

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

  • --ndb-连接字符串

    Command-Line Format --ndb-连接字符串=连接字符串
    Type 字符串
    Default Value [none]

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

  • --ndb-mgm-tls

    Command-Line Format --ndb-mgm-tls=级别
    Type 枚举
    Default Value relaxed
    Valid Values

    relaxed

    strict

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

  • --ndb-tls-search-path

    Command-Line Format --ndb-tls-search-path=列表
    Type 路径名
    Default Value (Unix) $HOME/ndb-tls
    Default Value (Windows) $HOMEDIR/ndb-tls

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

    语法见 --CA-search-path 选项的描述。

  • --no-config

    Command-Line Format --no-config

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

  • --no-defaults

    Command-Line Format --no-defaults

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

  • --no-login-paths

    Command-Line Format --no-login-paths

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

  • --passphrase

    Command-Line Format --passphrase=短语
    Type 字符串
    Default Value [none]

    指定 CA 密钥密码短语。

  • --node-id

    Command-Line Format --node-id=#
    Type 整数
    Default Value 0
    Minimum Value 0
    Maximum Value 255

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

  • --node-type

    Command-Line Format --node-type=set
    Type 集合
    Default Value mgmd,db,api

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

  • --pending

    Command-Line Format --pending

    将密钥和证书保存为待定,而不是活动的。

  • --print-defaults

    Command-Line Format --打印默认值

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

  • --promote

    Command-Line Format --promote

    将pending文件提升到活动状态,然后退出。

  • --remote-CA-host

    Command-Line Format --remote-CA-host=主机名
    Type 字符串
    Default Value [none]

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

  • --remote-exec-path

    Command-Line Format --remote-exec-path
    Type 路径名
    Default Value [none]

    提供远程CA主机指定的可执行文件的完整路径,以--remote-CA-host

  • --remote-openssl

    Command-Line Format --remote-openssl

    在远程CA主机上使用OpenSSL签名密钥,以--remote-CA-host指定。

  • --replace-by

    Command-Line Format --replace-by=#
    Type 整数
    Default Value -10
    Minimum Value -128
    Maximum Value 127

    建议证书替换日期,以CA到期日期后的天数为单位。使用负数表示到期日期前的天数。

  • --rotate-CA

    Command-Line Format --rotate-CA

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

  • --schedule

    Command-Line Format --schedule=list
    Type 字符串
    Default Value 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

    Command-Line Format --sign
    Disabled by skip-sign

    创建签名证书;默认启用。使用--skip-sign创建证书签名请求而不是。

  • --跳过签名

    Command-Line Format --跳过签名

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

  • --stdio

    Command-Line Format --stdio

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

  • --输出目录

    Command-Line Format --输出目录=dirname
    Type 目录名称
    Default Value [none]

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

  • --使用帮助

    Command-Line Format --使用帮助

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

  • --版本信息

    Command-Line Format --版本信息

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