Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 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密钥和证书的管理在MySQL中作为可执行实用程序程序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

    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名称;对于--create-CA--rotate-CA,默认为First。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\db-tls ;在其他平台(包括Linux)上,它是 $HOME/db-tls 。可以通过编译NDB集群时使用-DWITH_NDB_TLS_SEARCH_PATH来重写此默认值。

  • --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 Integer
    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-connectstring

    Command-Line Format --ndb-connectstring=connection_string
    Type 字符串
    Default Value [none]

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

  • --ndb-mgm-tls

    Command-Line Format --ndb-mgm-tls=level
    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=list
    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=phrase
    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 --print-defaults

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

  • --promote

    Command-Line Format --promote

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

  • --remote-CA-host

    Command-Line Format --remote-CA-host=hostname
    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

    使用OpenSSL在指定的远程CA主机上签名密钥,使用--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可以使用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

    根据默认计划,客户端证书从120th天开始过期,并在接下来的10天内以随机间隔过期;数据节点证书在130th到140th天之间的随机时间过期;管理节点证书在150th天(没有随机间隔)过期。

  • --sign

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

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

  • --skip-sign

    Command-Line Format --skip-sign

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

  • --stdio

    Command-Line Format --stdio

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

  • --to-dir

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

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

  • --usage

    Command-Line Format --usage

    输出帮助文本,然后退出(与--help相同)。

  • --version

    Command-Line Format --version

    输出版本信息,然后退出。