Настройка TLS для OpenSearch Dashboards

По умолчанию, для упрощения тестирования и начала работы, OpenSearch Dashboards работает по протоколу HTTP. Чтобы включить TLS для HTTPS, обновите следующие настройки в файле opensearch_dashboards.yml.
Настройка Описание
server.ssl.enabled Включает SSL-соединение между сервером OpenSearch Dashboards и веб-браузером пользователя. Установите значение true для HTTPS или false для HTTP.
server.ssl.supportedProtocols Указывает массив поддерживаемых протоколов TLS. Возможные значения: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3. По умолчанию: ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'].
server.ssl.cipherSuites Указывает массив шифров TLS. Необязательная настройка.
server.ssl.certificate Если server.ssl.enabled установлено в true, указывает полный путь к действительному сертификату сервера Privacy Enhanced Mail (PEM) для OpenSearch Dashboards. Вы можете сгенерировать свой сертификат или получить его у центра сертификации (CA).
server.ssl.key Если server.ssl.enabled установлено в true, указывает полный путь к ключу для вашего серверного сертификата, например, /usr/share/opensearch-dashboards-1.0.0/config/my-client-cert-key.pem. Вы можете сгенерировать свой сертификат или получить его у CA.
server.ssl.keyPassphrase Устанавливает пароль для ключа. Удалите эту настройку, если у ключа нет пароля. Необязательная настройка.
server.ssl.keystore.path Использует файл JKS (Java KeyStore) или PKCS12/PFX (Public-Key Cryptography Standards) вместо сертификата и ключа PEM.
server.ssl.keystore.password Устанавливает пароль для хранилища ключей. Обязательная настройка.
server.ssl.clientAuthentication Указывает режим аутентификации клиента TLS. Может быть одним из следующих: none, optional или required. Если установлено в required, ваш веб-браузер должен отправить действительный клиентский сертификат, подписанный CA, настроенным в server.ssl.certificateAuthorities. По умолчанию: none.
server.ssl.certificateAuthorities Указывает полный путь к одному или нескольким сертификатам CA в массиве, которые выдают сертификат, используемый для аутентификации клиента. Обязательная настройка, если server.ssl.clientAuthentication установлено в optional или required.
server.ssl.truststore.path Использует файл JKS или PKCS12/PFX trust store вместо сертификатов CA PEM.
server.ssl.truststore.password Устанавливает пароль для trust store. Обязательная настройка.
opensearch.ssl.verificationMode Устанавливает связь между OpenSearch и OpenSearch Dashboards. Допустимые значения: full, certificate или none. Рекомендуется использовать full, если TLS включен, что включает проверку имени хоста. certificate проверяет сертификат, но не имя хоста. none не выполняет никаких проверок (подходит для HTTP). По умолчанию: full.
opensearch.ssl.certificateAuthorities Если opensearch.ssl.verificationMode установлено в full или certificate, указывает полный путь к одному или нескольким сертификатам CA в массиве, которые составляют доверенную цепочку для кластера OpenSearch. Например, вам может потребоваться включить корневой CA и промежуточный CA, если вы использовали промежуточный CA для выдачи ваших сертификатов администратора, клиента и узла.
opensearch.ssl.truststore.path Использует файл trust store JKS или PKCS12/PFX вместо сертификатов CA PEM.
opensearch.ssl.truststore.password Устанавливает пароль для trust store. Обязательная настройка.
opensearch.ssl.alwaysPresentCertificate Отправляет клиентский сертификат в кластер OpenSearch, если установлено значение true, что необходимо, когда mTLS включен в OpenSearch. По умолчанию: false.
opensearch.ssl.certificate Если opensearch.ssl.alwaysPresentCertificate установлено в true, указывает полный путь к действительному клиентскому сертификату для кластера OpenSearch. Вы можете сгенерировать свой сертификат или получить его у CA.
opensearch.ssl.key Если opensearch.ssl.alwaysPresentCertificate установлено в true, указывает полный путь к ключу для клиентского сертификата. Вы можете сгенерировать свой сертификат или получить его у CA.
opensearch.ssl.keyPassphrase Устанавливает пароль для ключа. Удалите эту настройку, если у ключа нет пароля. Необязательная настройка.
opensearch.ssl.keystore.path Использует файл хранилища ключей JKS или PKCS12/PFX вместо сертификата и ключа PEM.
opensearch.ssl.keystore.password Устанавливает пароль для хранилища ключей. Обязательная настройка.
opensearch_security.cookie.secure Если TLS включен для OpenSearch Dashboards, измените эту настройку на true. Для HTTP установите значение false.

Пример конфигурации opensearch_dashboards.yml

Следующая конфигурация opensearch_dashboards.yml показывает, как OpenSearch и OpenSearch Dashboards могут работать на одной машине с демонстрационной конфигурацией:

server.host: '0.0.0.0'
server.ssl.enabled: true
server.ssl.certificate: /usr/share/opensearch-dashboards/config/client-cert.pem
server.ssl.key: /usr/share/opensearch-dashboards/config/client-cert-key.pem
opensearch.hosts: ["https://localhost:9200"]
opensearch.ssl.verificationMode: full
opensearch.ssl.certificateAuthorities: [ "/usr/share/opensearch-dashboards/config/root-ca.pem", "/usr/share/opensearch-dashboards/config/intermediate-ca.pem" ]
opensearch.username: "kibanaserver"
opensearch.password: "kibanaserver"
opensearch.requestHeadersAllowlist: [ authorization,securitytenant ]
opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: ["Private", "Global"]
opensearch_security.readonly_mode.roles: ["kibana_read_only"]
opensearch_security.cookie.secure: true

Если вы используете опцию установки через Docker, вы можете передать пользовательский файл opensearch_dashboards.yml в контейнер. Чтобы узнать больше, посетите страницу установки Docker.

После включения этих настроек и запуска приложения вы можете подключиться к OpenSearch Dashboards по адресу https://localhost:5601. Возможно, вам потребуется подтвердить предупреждение браузера, если ваши сертификаты самоподписанные. Чтобы избежать такого предупреждения (или полной несовместимости с браузером), рекомендуется использовать сертификаты от доверенного центра сертификации (CA).