Для настройки SSL в opensearch требуется создать конфигурацию в файле config/opensearch.yml:
cluster.name: "adm-dev-weblog"
node.name: "adm-ws-dev-weblog-os.dns-shop.ru"
path.data: "/opensearch"
network.host: "10.0.6.32,127.0.0.1"
http.port: 9200
discovery.type: single-node
bootstrap.memory_lock: true
plugins.security.restapi.roles_enabled: ["all_access","admin_role"]
plugins.security.ssl.transport.pemcert_filepath: dns_shop_ru.crt
plugins.security.ssl.transport.pemkey_filepath: dns_shop_ru.key
plugins.security.ssl.transport.pemtrustedcas_filepath: dns_shop_ru.crt
plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: dns_shop_ru.crt
plugins.security.ssl.http.pemkey_filepath: dns_shop_ru.key
plugins.security.ssl.http.pemtrustedcas_filepath: dns_shop_ru.crt
plugins.security.authcz.admin_dn:
- "CN=*.dns-shop.ru,O=DNS RETAIL LLC,L=Vladivostok,ST=Primorsky krai,C=RU"
plugins.security.nodes_dn:
- "CN=*.dns-shop.ru,O=DNS RETAIL LLC,L=Vladivostok,ST=Primorsky krai,C=RU"
- "CN=*.dns-shop.ru,O=DNS RETAIL LLC,L=Vladivostok,ST=Primorsky krai,C=RU"
- "CN=*.dns-shop.ru,O=DNS RETAIL LLC,L=Vladivostok,ST=Primorsky krai,C=RU"
cluster.name: Имя кластера. Это уникальное имя, которое используется для идентификации кластера, к которому принадлежит узел. Это имя важно для обеспечения правильной связи между узлами в кластере.node.name: Имя узла. Это уникальное имя узла в кластере, которое используется для идентификации и коммуникации между узлами.path.data: Путь к директории, где OpenSearch будет хранить данные. Этот путь указывает, где будут храниться все индексы и другие данные, связанные с работой OpenSearch.network.host: Сетевые адреса, на которых должен слушать OpenSearch. Это адреса, на которых OpenSearch будет прослушивать входящие соединения.http.port: Порт, на котором будет прослушивать HTTP-трафик. Это порт, который будет использоваться для входящих HTTP-запросов к OpenSearch.discovery.type: Тип обнаружения узлов в кластере. Значение "single-node" указывает, что это единственный узел в кластере, что означает, что обнаружение других узлов не требуется.bootstrap.memory_lock: Если задано значение true, OpenSearch будет пытаться заблокировать память, чтобы предотвратить ее свопинг. Это может помочь улучшить производительность и стабильность OpenSearch.plugins.security.restapi.roles_enabled: Роли, которым разрешен доступ к REST API. Это ограничивает доступ к API только для учетных записей, которые имеют одну из указанных ролей.plugins.security.ssl.transport.*: Настройки для настройки SSL для транспортного уровня. Это включает в себя пути к сертификатам и ключам, а также другие параметры, связанные с SSL-шифрованием.plugins.security.ssl.http.enabled: Включает SSL для HTTP. Если это значение установлено в true, все HTTP-соединения будут зашифрованы с помощью SSL.plugins.security.ssl.http.*: Настройки для настройки SSL для HTTP. Это включает в себя пути к сертификатам и ключам, а также другие параметры, связанные с SSL-шифрованием для HTTP-соединений.plugins.security.authcz.admin_dn: Distinguished Names (DN) администраторов. Это уникальные имена, которые идентифицируют администраторов в системе OpenSearch.plugins.security.nodes_dn: Distinguished Names (DN) узлов. Это уникальные имена, которые идентифицируют каждый узел в кластере OpenSearch.По хорошему, plugins.security.authcz.admin_dn и plugins.security.nodes_dn должны отличаться. Но для этого необходимо выпускать сертификат для каждого сервера и для каждого администратора. С plugins.security.ssl.transport.enforce_hostname_verification та же история.
За более углубленные настройки безопасности отвечает plugin opensearch-security. Конфигурации плагина находятся в директории config/opensearch-security