25.5.28 ndb_sign_keys — Создание, Подпись и Управление ключами TLS и сертификатами для кластера NDB
Управление ключами TLS и сертификатами в кластере NDB реализовано в виде исполняемой утилиты ndb_sign_keys, которая обычно находится в каталоге MySQL bin. Утилита выполняет такие функции, как создание, подписание и отметка ключей и сертификатов как устаревших, и обычно работает следующим образом:
ndb_sign_keys подключается к ndb_mgmd и получает конфигурацию кластера.
Для каждого узла кластера, настроенного для работы на локальной машине, ndb_sign_keys находит закрытый ключ узла и подписывает его, создавая активный сертификат узла.
Некоторые дополнительные задачи, которые может выполнять ndb_sign_keys, перечислены здесь:
Получение информации о конфигурации из файла config.ini вместо работающего ndb_mgmd
Создание центра сертификации (CA) кластера, если он еще не существует
Создание закрытых ключей
Сохранение ключей и сертификатов как ожидающих, а не активных
Подписание ключа для отдельного узла, как указано с помощью параметров командной строки, описанных позже в этом разделе
Запрос подписи закрытого ключа у центра сертификации, расположенного на удалённом узле
Опции, которые могут быть использованы с ndb_sign_keys, показаны в следующей таблице. Дополнительные описания следуют за таблицей.
-
Формат командной строки --bind-host=hostТип String Значение по умолчанию mgmd, apiСоздать сертификат, привязанный к списку имен хостов типов узлов, которые должны иметь привязки имен хостов сертификатов, из набора
(mgmd,db,api). -
Формат командной строки --bound-hostname=hostnameТип String Значение по умолчанию [none]Создать сертификат, привязанный к имени хоста, переданному этому параметру.
-
Формат командной строки --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Тип String Значение по умолчанию [none]Допустимые значения FirstSecondУстановить порядковое имя CA; по умолчанию используется
Firstдля--create-CAиSecondдля--rotate-CA. Общее имя в сертификате CA — “MySQL NDB ClusterordinalCertificate”, гдеordinal— это порядковое имя, переданное этому параметру. -
Формат командной строки --CA-search-path=nameТип Имя файла Значение по умолчанию [none]Указать список каталогов для поиска файла CA. На платформах Unix имена каталогов разделяются двоеточиями (
:); в системах Windows в качестве разделителя используется точка с запятой (;). Ссылка на каталог может быть относительной или абсолютной; она может содержать одну или несколько переменных среды, каждая из которых обозначается предшествующим знаком доллара ($), и расширяется перед использованием.Поиск начинается с самого левого указанного каталога и продолжается слева направо, пока не будет найден файл. Пустая строка обозначает пустой путь поиска, что приводит к сбою всех поисков. Строка, состоящая из одной точки (
.), указывает, что путь поиска ограничен текущим рабочим каталогом.Если путь поиска не указан, используется встроенное значение по умолчанию. Это значение зависит от используемой платформы: в Windows это
$HOMEPATH\ndb-tls; на других платформах (включая Linux) это$HOME/ndb-tls. Это значение по умолчанию можно переопределить, скомпилировав NDB Cluster с помощью-DWITH_NDB_TLS_SEARCH_PATH. -
Формат командной строки --CA-tool=nameТип Имя файла Значение по умолчанию [none]Указать вспомогательный исполняемый инструмент, включая путь.
-
Формат командной строки --checkПроверить даты истечения срока действия сертификата.
-
Формат командной строки --config-file=fileОтключено no-configТип Имя файла Значение по умолчанию [none]Указать путь к конфигурационному файлу кластера (обычно
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Тип String Значение по умолчанию P-256Использовать указанную кривую для шифрования ключей узла.
-
Формат командной строки --defaults-extra-file=pathТип String Значение по умолчанию [none]Прочитать этот файл опций после того, как будут прочитаны глобальные файлы.
-
Формат командной строки --defaults-file=pathТип String Значение по умолчанию [none]Прочитать только этот файл опций.
-
Формат командной строки --defaults-group-suffix=stringТип String Значение по умолчанию [none]Прочитать не только обычные группы опций, но и группы с обычными именами и суффиксом
string. -
Формат командной строки --duration=#Тип Integer Значение по умолчанию 0Минимальное значение -500000Максимальное значение 0Единица измерения seconds Установить срок действия сертификатов или запросов на подпись в секундах.
-
Формат командной строки --helpВывести справку и завершить работу.
-
Формат командной строки --keys-to-dir=dirnameТип Directory name Значение по умолчанию [none]Указать выходной каталог для закрытых ключей (только); для этой цели он переопределяет любое значение, установленное для
--to-dir. -
Формат командной строки --login-path=pathТип String Значение по умолчанию [none]Прочитать этот путь из файла входа.
-
Формат командной строки --ndb-connectstring=connection_stringТип String Значение по умолчанию [none]Установить строку подключения для подключения к ndb_mgmd, используя синтаксис
[nodeid=. Если этот параметр установлен, он переопределяет значение, установленное дляid;][host=]hostname[:port]NDB_CONNECTSTRING(если таковое имеется), а также любое значение, установленное в файлеmy.cnf. -
Формат командной строки --ndb-mgm-tls=levelТип Enumeration Значение по умолчанию relaxedДопустимые значения relaxedstrictУстанавливает уровень поддержки TLS, необходимый для клиента ndb_mgm; одно из
relaxedилиstrict.relaxed(по умолчанию) означает, что попытка установить TLS-подключение осуществляется, но успех не обязателен;strictозначает, что для подключения требуется TLS. -
Формат командной строки --ndb-tls-search-path=listТип Path name Значение по умолчанию (Unix) $HOME/ndb-tlsЗначение по умолчанию (Windows) $HOMEDIR/ndb-tlsУказать список каталогов, содержащих ключи и сертификаты TLS.
Для синтаксиса см. описание параметра
--CA-search-path. -
Формат командной строки --no-configНе получать конфигурацию кластера; создать один сертификат на основе предоставленных параметров (включая параметры по умолчанию для тех, которые не указаны).
-
Формат командной строки --no-defaultsНе читать параметры по умолчанию из любого файла параметров, кроме файла входа.
-
Формат командной строки --no-login-pathsНе читать пути входа из файла путей входа.
-
Формат командной строки --passphrase=phraseТип String Значение по умолчанию [none]Указать кодовую фразу ключа CA.
-
Формат командной строки --node-id=#Тип Integer Значение по умолчанию 0Минимальное значение 0Максимальное значение 255Создать или подписать ключ для узла с указанным идентификатором узла.
-
Формат командной строки --node-type=setТип Set Значение по умолчанию mgmd,db,apiСоздать или подписать ключи для указанного типа или типов из набора
(mgmd,db,api). -
Формат командной строки --pendingСохранить ключи и сертификаты как ожидающие, а не активные.
-
Формат командной строки --print-defaultsВывести список аргументов программы, затем завершить работу.
-
Формат командной строки --promoteПереместить ожидающие файлы в активное состояние и выйти.
-
Формат командной строки --remote-CA-host=hostnameТип Строка Значение по умолчанию [none]Указать адрес или имя хоста удаленного CA-узла.
-
Формат командной строки --remote-exec-pathТип Имя пути Значение по умолчанию [none]Указать полный путь к исполняемому файлу на удалённом CA-узле, указанном параметром
--remote-CA-host. -
Формат командной строки --remote-opensslИспользовать OpenSSL для подписи ключей на удалённом CA-узле, указанном параметром
--remote-CA-host. -
Формат командной строки --replace-by=#Тип Целое число Значение по умолчанию -10Минимальное значение -128Максимальное значение 127Предложить дату замены сертификата для периодической проверки, в виде количества дней после даты истечения срока действия CA. Использовать отрицательное число для указания количества дней до истечения срока действия.
-
Формат командной строки --rotate-CAЗаменить более старый CA на более новый. Новый CA можно создать с помощью OpenSSL или разрешить ndb_sign_keys создать новый, в этом случае новый CA создается со средним сертификатом CA, подписанным старым CA.
-
Формат командной строки --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Отключено skip-signСоздать подписанные сертификаты; включено по умолчанию. Используйте
--skip-sign, чтобы создать запросы на подпись сертификатов вместо этого. -
Формат командной строки --skip-signСоздать запросы на подпись сертификатов вместо подписанных сертификатов.
-
Формат командной строки --stdioСчитывать запросы на подпись сертификатов из
stdinи записывать X.509 вstdout. -
Формат командной строки --to-dir=dirnameТип Имя каталога Значение по умолчанию [none]Указать каталог вывода созданных файлов. Для файлов с закрытыми ключами это можно переопределить с помощью
--keys-to-dir. -
Формат командной строки --usageВывести текст справки и выйти (псевдоним для
--help). -
Формат командной строки --versionВывести информацию о версии и выйти.
© 2025 Oracle
Licensed under the GPLv2 License.