Spec-Zone.ru › Elasticsearch 8
›Руководство по Elasticsearch [8.17] ›Инструменты командной строки

elasticsearch-certutil

Команда elasticsearch-certutil упрощает создание сертификатов для использования с Transport Layer Security (TLS) в Elastic Stack.

Синтаксис

bin/elasticsearch-certutil
(
(ca [--ca-dn <name>] [--days <n>] [--pem])

| (cert ([--ca <file_path>] | [--ca-cert <file_path> --ca-key <file_path>])
[--ca-dn <name>] [--ca-pass <password>] [--days <n>]
[--dns <domain_name>] [--in <input_file>] [--ip <ip_addresses>]
[--multiple] [--name <file_name>] [--pem] [--self-signed])

| (csr [--dns <domain_name>] [--in <input_file>] [--ip <ip_addresses>]
[--name <file_name>])

[-E <KeyValuePair>] [--keysize <bits>] [--out <file_path>]
[--pass <password>]
)

| http

[-h, --help] ([-s, --silent] | [-v, --verbose])

Описание

Можно указать один из следующих режимов: ca, cert, csr, http. Команда elasticsearch-certutil также поддерживает режим без отображения, чтобы упростить пакетные операции.

Режим CA

Режим ca генерирует новый центр сертификации (CA). По умолчанию он создает один выходной файл PKCS#12, который содержит сертификат CA и закрытый ключ для CA. Если вы укажете параметр --pem, команда сгенерирует zip-архив, содержащий сертификат и закрытый ключ в формате PEM.

В дальнейшем эти файлы можно использовать в качестве входных данных для режима cert команды.

Режим CERT

Режим cert генерирует X.509 сертификаты и закрытые ключи. По умолчанию он создает один сертификат и ключ для использования на одном экземпляре.

Для генерации сертификатов и ключей для нескольких экземпляров укажите параметр --multiple, который запросит информацию о каждом экземпляре. В качестве альтернативы, можно использовать параметр --in для указания YAML-файла, содержащего данные об экземплярах.

Экземпляр — это любая часть Elastic Stack, которая требует сертификат TLS или SSL. В зависимости от вашей конфигурации Elasticsearch, Logstash, Kibana и Beats могут потребовать сертификат и закрытый ключ. Минимальная необходимая информация для экземпляра — это его имя, используемое в качестве общего имени сертификата. Имя экземпляра может быть значением хоста или полным полным доменным именем. Если имя экземпляра приведет к созданию недопустимого имени файла или каталога, необходимо также указать имя файла в параметре команды --name или в поле filename в входном YAML-файле.

Можно дополнительно указать IP-адреса или имена DNS для каждого экземпляра. Если ни IP-адреса, ни имена DNS не указаны, продукты Elastic Stack не могут выполнить проверку имени хоста, и вам может потребоваться настроить параметр безопасности verification_mode на значение certificate только. Дополнительную информацию об этом параметре см. в разделе Настройки безопасности.

Все сертификаты, генерируемые этой командой, подписаны CA, если не указан параметр --self-signed. Вы должны предоставить свой CA с помощью параметров --ca или --ca-cert и --ca-key, если не указан параметр --self-signed. Дополнительную информацию о генерации CA см. в разделе режим CA этой команды. Чтобы сгенерировать самозаверяющие сертификаты, используйте параметр --self-signed.

По умолчанию режим cert создает один выходной файл PKCS#12, который содержит сертификат экземпляра, закрытый ключ экземпляра и сертификат CA. Если вы укажете параметр --pem, команда сгенерирует сертификаты и ключи в формате PEM и упакует их в zip-архив. Если вы укажете параметры --multiple или --in, команда создаст zip-архив, содержащий сгенерированные сертификаты и ключи.

Режим CSR

Режим csr генерирует запросы на подписание сертификатов (CSR), которые можно отправить в доверенный центр сертификации для получения подписанных сертификатов. Подписанные сертификаты должны быть в формате PEM или PKCS#12 для работы с функциями безопасности Elasticsearch.

По умолчанию команда генерирует один CSR для одного экземпляра.

Для генерации CSR для нескольких экземпляров укажите параметр --multiple, который запросит информацию о каждом экземпляре. В качестве альтернативы, можно использовать параметр --in для указания YAML-файла, содержащего данные об экземплярах.

Режим csr создает один zip-архив, содержащий CSR и закрытые ключи для каждого экземпляра. Каждый CSR предоставляется в стандартном кодировании PEM PKCS#10 CSR. Каждый ключ предоставляется в кодировании PEM закрытого ключа RSA.

Режим HTTP

Режим http проведет вас через процесс генерации сертификатов для использования на HTTP (REST) интерфейсе Elasticsearch. Он задаст вам ряд вопросов, чтобы сгенерировать правильный набор файлов для ваших нужд. Например, в зависимости от ваших выборов, он может сгенерировать zip-архив, который содержит центр сертификации (CA), запрос на подписание сертификата (CSR) или сертификаты и ключи для использования в Elasticsearch и Kibana. Каждый каталог в zip-архиве содержит файл readme, который объясняет, как использовать файлы.

Параметры

ca
Указывает на создание нового локального центра сертификации (ЦС). Этот параметр нельзя использовать вместе с параметрами csr, cert или http.
cert
Указывает на создание новых сертификатов и ключей X.509. Этот параметр нельзя использовать вместе с параметрами csr, ca или http.
csr
Указывает на создание запросов на подпись сертификатов. Этот параметр нельзя использовать вместе с параметрами ca, cert или http.
http
Создаёт новый сертификат или запрос на подпись сертификата для HTTP-интерфейса Elasticsearch. Этот параметр нельзя использовать вместе с параметрами ca, cert или csr.
--ca <file_path>
Указывает путь к существующей паре ключей ЦС (в формате PKCS#12). Этот параметр применим только к параметру cert.
--ca-cert <file_path>
Указывает путь к существующему сертификату ЦС (в формате PEM). Необходимо также указать параметр --ca-key. Параметр --ca-cert применим только к параметру cert.
--ca-dn <name>
Определяет отличительный имя (DN), используемое для сгенерированного сертификата ЦС. Значение по умолчанию — CN=Elastic Certificate Tool Autogenerated CA. Этот параметр нельзя использовать вместе с параметрами csr или http.
--ca-key <file_path>
Указывает путь к существующему закрытому ключу ЦС (в формате PEM). Необходимо также указать параметр --ca-cert. Параметр --ca-key применим только к параметру cert.
--ca-pass <password>
Указывает пароль для существующего или сгенерированного закрытого ключа ЦС. Этот параметр применим только к параметру cert.
--days <n>
Указывает целое число, представляющее количество дней, в течение которых сгенерированные сертификаты будут действительны. Значение по умолчанию — 1095. Этот параметр нельзя использовать вместе с параметрами csr или http.
--dns <domain_name>
Указывает список DNS-имён, разделённых запятыми. Этот параметр нельзя использовать вместе с параметрами ca или http.
-E <KeyValuePair>
Настраивает параметр.
-h, --help
Возвращает все параметры команды.
--in <input_file>
Указывает файл для работы в бесшумном режиме. Входной файл должен быть в формате YAML. Этот параметр нельзя использовать вместе с параметрами ca или http.
--ip <IP_addresses>
Указывает список IP-адресов, разделённых запятыми. Этот параметр нельзя использовать вместе с параметрами ca или http.
--keysize <bits>
Определяет количество бит, используемых в сгенерированных ключах RSA. Значение по умолчанию — 2048. Этот параметр нельзя использовать вместе с параметром http.
--multiple
Указывает на создание файлов для нескольких экземпляров. Этот параметр нельзя использовать вместе с параметрами ca или http.
--name <file_name>
Указывает имя созданного сертификата. Этот параметр нельзя использовать вместе с параметрами ca или http.
--out <file_path>
Указывает путь для выходных файлов. Этот параметр нельзя использовать вместе с параметром http.
--pass <password>

Указывает пароль для сгенерированных закрытых ключей. Этот параметр нельзя использовать вместе с параметрами http.

Ключи в формате PKCS#12 всегда защищены паролем, однако этот пароль может быть пустым. Если вы хотите указать пустой пароль без запроса, используйте --pass "" (без =) в командной строке.

Ключи в формате PEM защищены паролем только в том случае, если указан параметр --pass. Если вы не укажете аргумент для параметра --pass, вам будет предложено ввести пароль. Зашифрованные файлы PEM не поддерживают пустые пароли (если вы не хотите защищать ключи PEM паролем, не указывайте --pass).

--pem
Создаёт сертификаты и ключи в формате PEM вместо PKCS#12. Этот параметр нельзя использовать вместе с параметрами csr или http.
--self-signed

Генерирует самоподписанные сертификаты. Этот параметр применим только к параметру cert.

Этот параметр не рекомендуется для настройки TLS в кластере. Фактически, самоподписанный сертификат следует использовать только в том случае, когда вы уверены, что ЦС определенно не нужен и доверие напрямую предоставляется самому сертификату.

-s, --silent
Показ минимального вывода.
-v, --verbose
Показ подробного вывода.

Примеры

Следующая команда генерирует сертификат и закрытый ключ ЦС в формате PKCS#12:

bin/elasticsearch-certutil ca

Вам будет предложено ввести имя файла и пароль. В качестве альтернативы можно указать параметры --out и --pass.

Затем можно сгенерировать X.509 сертификаты и закрытые ключи с использованием нового ЦС. Например:

bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

Вам будет предложено ввести пароль ЦС, а также имя файла и пароль. В качестве альтернативы можно указать параметры --ca-pass, --out и --pass.

По умолчанию эта команда создаёт файл под названием elastic-certificates.p12, который можно скопировать в соответствующий каталог настроек каждого продукта Elastic, который вы хотите настроить. Дополнительную информацию см. в разделе Шифрование межузловых коммуникаций с помощью TLS.

Использование elasticsearch-certutil в бесшумном режиме

Для работы в бесшумном режиме необходимо создать файл YAML, содержащий информацию об экземплярах. Он должен соответствовать следующему формату:

instances:
  - name: "node1" 
    ip: 
      - "192.0.2.1"
    dns: 
      - "node1.mydomain.com"
  - name: "node2"
    ip:
      - "192.0.2.2"
      - "198.51.100.1"
  - name: "node3"
  - name: "node4"
    dns:
      - "node4.mydomain.com"
      - "node4.internal"
  - name: "CN=node5,OU=IT,DC=mydomain,DC=com"
    filename: "node5" 

Имя экземпляра. Это может быть простая строка или имя Distinguished Name (DN). Это единственное обязательное поле.

Необязательный массив строк, представляющих IP-адреса для этого экземпляра. Разрешены значения IPv4 и IPv6. Значения добавляются в качестве альтернативных имён субъектов.

Необязательный массив строк, представляющих DNS-имена для этого экземпляра. Значения добавляются в качестве альтернативных имён субъектов.

Имя файла для использования для этого экземпляра. Это имя используется как имя каталога, содержащего файлы экземпляра в выводе. Оно также используется в именах файлов внутри каталога. Имя файла не должно иметь расширения. Примечание: если предоставленное для экземпляра имя name не представляет допустимое имя файла, то поле filename должно быть присутствовать.

После подготовки файла YAML можно использовать команду elasticsearch-certutil для генерации сертификатов или запросов на подпись сертификатов. Для указания расположения файла просто используйте параметр --in. Например:

bin/elasticsearch-certutil cert --silent --in instances.yml --out test1.zip --pass testpassword --ca elastic-stack-ca.p12

Эта команда генерирует сжатый файл test1.zip. После разархивирования выходного файла для каждого экземпляра, указанного в файле instances.yml, есть каталог. Каждый каталог экземпляра содержит один файл PKCS#12 (.p12), который содержит сертификат экземпляра, закрытый ключ экземпляра и сертификат ЦС.

Также можно использовать файл YAML для генерации запросов на подпись сертификатов. Например:

bin/elasticsearch-certutil csr --silent --in instances.yml --out test2.zip --pass testpassword

Эта команда генерирует сжатый файл, содержащий каталог для каждого экземпляра. Каждый каталог экземпляра содержит запрос на подпись сертификата (файл *.csr) и закрытый ключ (файл *.key).

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/certutil.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API