NDB 叢集中 TLS 金鑰和憑證的管理是以可執行公用程式程式 ndb_sign_keys 實作的,通常可在 MySQL bin
目錄中找到。此程式執行諸如建立、簽署及撤銷金鑰和憑證等功能,通常運作方式如下
ndb_sign_keys 連線至 ndb_mgmd 並擷取叢集的組態。
對於設定為在本機上執行的每個叢集節點,ndb_sign_keys 會尋找節點的私密金鑰並簽署它,以建立使用中的節點憑證。
以下列出 ndb_sign_keys 可執行的一些其他工作
從 config.ini 檔案而非執行中的 ndb_mgmd 取得組態資訊
在叢集憑證授權單位 (CA) 尚不存在時建立它
建立私密金鑰
將金鑰和憑證儲存為擱置狀態而非使用中
使用本節稍後說明之命令列選項指定的單一節點簽署金鑰
請求位於遠端主機上的 CA 簽署本機金鑰
以下表格顯示可與 ndb_sign_keys 搭配使用的選項。表格後方提供其他說明。
-
命令列格式 --bind-host=host
類型 字串 預設值 mgmd, api
從
(mgmd,db,api)
集合中,建立繫結至應該具有憑證主機名稱繫結的節點類型的主機名稱清單的憑證。 -
命令列格式 --bound-hostname=hostname
類型 字串 預設值 [無]
建立繫結至傳遞至此選項之主機名稱的憑證。
-
命令列格式 --CA-cert=name
類型 檔案名稱 預設值 NDB-Cluster-cert
使用傳遞至此選項的名稱作為 CA 憑證檔案。
-
命令列格式 --CA-days=#
已導入 8.4.1 類型 整數 預設值 1461
最小值 -1
最大值 2147483647
將憑證的存留期設定為這麼多天。預設值相當於 4 年加 1 天。
-1
表示憑證永不過期。此選項已在 NDB 8.4.1 中新增。
-
命令列格式 --CA-key=name
類型 檔案名稱 預設值 NDB-Cluster-private-key
使用傳遞至此選項的名稱作為 CA 私密金鑰檔案。
-
命令列格式 --CA-ordinal=name
類型 字串 預設值 [無]
有效值 First
Second
設定序數 CA 名稱;對於
--create-CA
,預設值為First
,而對於--rotate-CA
,預設值為Second
。CA 憑證中的通用名稱為 「MySQL NDB 叢集序數
憑證」,其中序數
是傳遞至此選項的序數名稱。 -
命令列格式 --CA-search-path=name
類型 檔案名稱 預設值 [無]
指定搜尋 CA 檔案的目錄清單。在 Unix 平台上,目錄名稱以冒號 (
:
) 分隔;在 Windows 系統上,分號字元 (;
) 用作分隔符號。目錄參考可以是相對或絕對的;它可以包含一或多個環境變數,每個環境變數都以加上前置美元符號 ($
) 表示,並在使用前展開。搜尋從最左側的已命名目錄開始,並從左至右繼續,直到找到檔案為止。空字串表示空的搜尋路徑,這會導致所有搜尋失敗。由單一點號 (
.
) 組成的字串表示搜尋路徑僅限於目前的工作目錄。如果未提供搜尋路徑,則會使用編譯的預設值。此值取決於使用的平台:在 Windows 上,此值為
$HOMEPATH\ndb-tls
;在其他平台 (包括 Linux) 上,此值為$HOME/ndb-tls
。可以使用-DWITH_NDB_TLS_SEARCH_PATH
編譯 NDB 叢集來覆寫此預設值。 -
命令列格式 --CA-tool=name
類型 檔案名稱 預設值 [無]
指定可執行的輔助工具,包括路徑。
-
命令列格式 --check
檢查憑證到期日。
-
命令列格式 --config-file=file
由以下項目停用 no-config
類型 檔案名稱 預設值 [無]
提供叢集組態檔案的路徑 (通常為
config.ini
)。 -
命令列格式 --connect-retries=#
類型 整數 預設值 12
最小值 -1
最大值 12
設定 ndb_sign_keys 嘗試連線至叢集的次數。如果使用
-1
,則程式會持續嘗試連線,直到成功或被迫停止。 -
命令列格式 --connect-retry-delay=#
類型 整數 預設值 5
最小值 0
最大值 5
設定 ndb_sign_keys 在連線嘗試失敗後,再次嘗試之前等待的秒數,最多為
--connect-retries
所判斷的次數。 -
命令列格式 --create-CA
建立 CA 金鑰和憑證。
-
命令列格式 --create-key
建立或取代私密金鑰。
-
命令列格式 --curve=name
類型 字串 預設值 P-256
使用具名曲線來加密節點金鑰。
-
命令列格式 --defaults-extra-file=path
類型 字串 預設值 [無]
在讀取全域檔案後,讀取此選項檔案。
-
命令列格式 --defaults-file=path
類型 字串 預設值 [無]
僅讀取此選項檔案。
-
命令列格式 --defaults-group-suffix=string
類型 字串 預設值 [無]
不僅讀取慣用的選項群組,還讀取具有慣用名稱和
字串
後置字元的群組。 -
命令列格式 --duration=#
類型 整數 預設值 0
最小值 -500000
最大值 0
單位 秒 以秒為單位設定憑證或簽署請求的存留期。
-
命令列格式 --help
列印說明文字並結束。
-
命令列格式 --keys-to-dir=dirname
類型 目錄名稱 預設值 [無]
指定私密金鑰的輸出目錄 (僅限);為此目的,它會覆寫針對
--to-dir
設定的任何值。 -
命令列格式 --login-path=path
類型 字串 預設值 [無]
從登入檔案讀取此路徑。
-
命令列格式 --ndb-connectstring=connection_string
類型 字串 預設值 [無]
設定用於連線至 ndb_mgmd 的連線字串,使用語法
[nodeid=
。如果設定此選項,則會覆寫id
;][host=]hostname
[:port
]NDB_CONNECTSTRING
(如果有的話) 所設定的值,以及my.cnf
檔案中設定的任何值。 -
命令列格式 --ndb-mgm-tls=層級
類型 列舉 預設值 寬鬆
有效值 寬鬆
嚴格
設定 ndb_mgm 用戶端所需的 TLS 支援層級;可以是
relaxed
或strict
。relaxed
(預設值) 表示會嘗試 TLS 連線,但並非必須成功;strict
表示必須使用 TLS 才能連線。 -
命令列格式 --ndb-tls-search-path=清單
類型 路徑名稱 預設值 (Unix) $HOME/ndb-tls
預設值 (Windows) $HOMEDIR/ndb-tls
指定包含 TLS 金鑰和憑證的目錄清單。
如需語法,請參閱
--CA-search-path
選項的說明。 -
命令列格式 --no-config
不取得叢集組態;根據提供的選項 (包括未指定選項的預設值) 建立單一憑證。
-
命令列格式 --no-defaults
不從登入檔以外的任何選項檔案讀取預設選項。
-
命令列格式 --no-login-paths
不從登入路徑檔案讀取登入路徑。
-
命令列格式 --passphrase=密碼
類型 字串 預設值 [無]
指定 CA 金鑰密碼。
-
命令列格式 --node-id=#
類型 整數 預設值 0
最小值 0
最大值 255
為具有指定節點 ID 的節點建立或簽署金鑰。
-
命令列格式 --node-type=設定
類型 設定 預設值 mgmd、db、api
從設定
(mgmd,db,api)
為指定的類型或多個類型建立或簽署金鑰。 -
命令列格式 --pending
將金鑰和憑證儲存為擱置狀態,而不是作用中狀態。
-
命令列格式 --print-defaults
列印程式引數清單,然後結束。
-
命令列格式 --promote
將擱置檔案升級為作用中狀態,然後結束。
-
命令列格式 --remote-CA-host=主機名稱
類型 字串 預設值 [無]
指定遠端 CA 主機的位址或主機名稱。
-
命令列格式 --remote-exec-path
類型 路徑名稱 預設值 [無]
提供使用
--remote-CA-host
指定的遠端 CA 主機上可執行檔的完整路徑。 -
命令列格式 --remote-openssl
使用 OpenSSL 在使用
--remote-CA-host
指定的遠端 CA 主機上簽署金鑰。 -
命令列格式 --replace-by=#
類型 整數 預設值 -10
最小值 -128
最大值 127
建議定期檢查的憑證更換日期,以 CA 到期日之後的天數表示。使用負數表示到期前的天數。
-
命令列格式 --rotate-CA
以較新的 CA 取代較舊的 CA。可以使用 OpenSSL 建立新的 CA,也可以允許 ndb_sign_keys 建立新的 CA,在這種情況下,將使用由舊 CA 簽署的中繼 CA 憑證建立新的 CA。
-
命令列格式 --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
由以下項目停用 skip-sign
建立已簽署的憑證;預設為啟用。使用
--skip-sign
改為建立憑證簽署請求。 -
命令列格式 --skip-sign
建立憑證簽署請求,而不是已簽署的憑證。
-
命令列格式 --stdio
從
stdin
讀取憑證簽署請求,並將 X.509 寫入stdout
。 -
命令列格式 --to-dir=目錄名稱
類型 目錄名稱 預設值 [無]
指定已建立檔案的輸出目錄。對於私密金鑰檔案,可以使用
--keys-to-dir
來覆寫此設定。 -
命令列格式 --usage
列印說明文字,然後結束 (別名為
--help
)。 -
命令列格式 --version
列印版本資訊,然後結束。