文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  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=host
    類型 字串
    預設值 mgmd, api

    從應具有憑證主機名稱繫結的節點類型清單中建立繫結到主機名稱的憑證,清單來源為 (mgmd,db,api)

  • --bound-hostname

    命令列格式 --bound-hostname=hostname
    類型 字串
    預設值 [無]

    建立繫結到傳遞至此選項的主機名稱的憑證。

  • --CA-cert

    命令列格式 --CA-cert=name
    類型 檔案名稱
    預設值 NDB-Cluster-cert

    將傳遞至此選項的名稱用於 CA 憑證檔案。

  • --CA-key

    命令列格式 --CA-key=name
    類型 檔案名稱
    預設值 NDB-Cluster-private-key

    將傳遞至此選項的名稱用於 CA 私密金鑰檔案。

  • --CA-ordinal

    命令列格式 --CA-ordinal=name
    類型 字串
    預設值 [無]
    有效值

    First

    Second

    設定序數 CA 名稱;對於 --create-CA,預設為 First,對於 --rotate-CA,預設為 Second。CA 憑證中的通用名稱為 MySQL NDB 叢集 ordinal 憑證,其中 ordinal 是傳遞至此選項的序數名稱。

  • --CA-search-path

    命令列格式 --CA-search-path=name
    類型 檔案名稱
    預設值 [無]

    指定要搜尋 CA 檔案的目錄清單。在 Unix 平台上,目錄名稱以冒號 (:) 分隔;在 Windows 系統上,則使用分號字元 (;) 作為分隔符號。目錄參照可以是相對的或絕對的;它可能包含一個或多個環境變數,每個環境變數都以字首貨幣符號 ($) 表示,並在使用前展開。

    搜尋會從最左邊的已命名目錄開始,並從左到右繼續,直到找到檔案。空字串表示空的搜尋路徑,這會導致所有搜尋失敗。由單一點 (.) 組成的字串表示搜尋路徑僅限於目前的工作目錄。

    如果未提供任何搜尋路徑,則會使用編譯到內部的預設值。此值取決於使用的平台:在 Windows 上,這是 $HOMEPATH\ndb-tls;在其他平台 (包括 Linux) 上,這是 $HOME/ndb-tls。這個預設值可以使用 -DWITH_NDB_TLS_SEARCH_PATH 編譯 NDB 叢集來覆寫。

  • --CA-tool

    命令列格式 --CA-tool=name
    類型 檔案名稱
    預設值 [無]

    指定可執行協助程式工具,包括路徑。

  • --check

    命令列格式 --check

    檢查憑證到期日。

  • --config-file

    命令列格式 --config-file=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 金鑰和憑證。

  • --CA-days

    命令列格式 --CA-days=#
    類型 整數
    預設值 1461
    最小值 -1
    最大值 2147483647

    將憑證的生命週期設定為這麼多天。預設值相當於 4 年又 1 天。-1 表示憑證永不過期。

    此選項已在 NDB 8.4.1 中新增。

  • --create-key

    命令列格式 --create-key

    建立或取代私密金鑰。

  • --curve

    命令列格式 --curve=name
    類型 字串
    預設值 P-256

    使用指定的曲線來加密節點金鑰。

  • --defaults-extra-file

    命令列格式 --defaults-extra-file=path
    類型 字串
    預設值 [無]

    在讀取全域檔案後讀取這個選項檔案。

  • --defaults-file

    命令列格式 --defaults-file=path
    類型 字串
    預設值 [無]

    僅讀取這個選項檔案。

  • --defaults-group-suffix

    命令列格式 --defaults-group-suffix=string
    類型 字串
    預設值 [無]

    不僅讀取一般選項群組,還讀取具有一般名稱和 string 後綴的群組。

  • --duration

    命令列格式 --duration=#
    類型 整數
    預設值 0
    最小值 -500000
    最大值 0
    單位

    設定憑證或簽署請求的存續時間,以秒為單位。

  • --help

    命令列格式 --help

    列印說明文字並結束。

  • --keys-to-dir

    命令列格式 --keys-to-dir=dirname
    類型 目錄名稱
    預設值 [無]

    指定私密金鑰的輸出目錄(僅限);為此目的,它會覆寫為 --to-dir 設定的任何值。

  • --login-path

    命令列格式 --login-path=path
    類型 字串
    預設值 [無]

    從登入檔讀取此路徑。

  • --ndb-connectstring

    命令列格式 --ndb-connectstring=connection_string
    類型 字串
    預設值 [無]

    設定用於連線至 ndb_mgmd 的連線字串,使用語法 [nodeid=id;][host=]hostname[:port]。如果設定此選項,它會覆寫為 NDB_CONNECTSTRING 設定的值(如果有的話),以及在 my.cnf 檔案中設定的任何值。

  • --ndb-mgm-tls

    命令列格式 --ndb-mgm-tls=level
    類型 列舉
    預設值 relaxed
    有效值

    relaxed

    strict

    設定 ndb_mgm 用戶端所需的 TLS 支援層級;可以是 relaxedstrict 其中之一。relaxed(預設值)表示嘗試建立 TLS 連線,但不要求成功;strict 表示需要 TLS 才能連線。

  • --ndb-tls-search-path

    命令列格式 --ndb-tls-search-path=list
    類型 路徑名稱
    預設值 (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=phrase
    類型 字串
    預設值 [無]

    指定 CA 金鑰通行詞組。

  • --node-id

    命令列格式 --node-id=#
    類型 整數
    預設值 0
    最小值 0
    最大值 255

    為具有指定節點 ID 的節點建立或簽署金鑰。

  • --node-type

    命令列格式 --node-type=set
    類型 設定
    預設值 mgmd,db,api

    為來自集合 (mgmd,db,api) 的指定類型或多種類型建立或簽署金鑰。

  • --pending

    命令列格式 --pending

    將金鑰和憑證儲存為待處理,而不是使用中。

  • --print-defaults

    命令列格式 --print-defaults

    列印程式引數清單,然後結束。

  • --promote

    命令列格式 --promote

    將待處理檔案升級為使用中,然後結束。

  • --remote-CA-host

    命令列格式 --remote-CA-host=hostname
    類型 字串
    預設值 [無]

    指定遠端 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=list
    類型 字串
    預設值 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=dirname
    類型 目錄名稱
    預設值 [無]

    指定建立檔案的輸出目錄。對於私密金鑰檔案,可以使用 --keys-to-dir 覆寫此設定。

  • --usage

    命令列格式 --usage

    列印說明文字,然後結束(--help 的別名)。

  • --version

    命令列格式 --version

    列印版本資訊,然後結束。