Настройка доступа по https
⚠️ Сразу после установки Hive WebUI и API доступен только по небезопасному протоколу HTTP.
Для настройки безопасного соединения поддерживается несколько опций на выбор:
- Загрузка собственных TLS-сертификатов на машину с Hive и выполнение настройки доступа HTTP/HTTPs;
- настройка своего HTTP или TCP Reverse proxy с TLS-терминированием перед Hive.
⚠️ Если вы хотите использовать самоподписанные TLS-сертификаты для интеграции Hive со сторонними системами или сертификаты, выдаваемые центром сертификации внутри организации, изучите главу Корневые TLS сертификаты.
Загрузка TLS-сертификатов
Загрузите свои TLS-сертификаты на машину, на которой установлен Hive:
- Полную цепочку TLS-сертификатов в формате PEM.
Файл должен называться
cert.pemи быть доступным для чтения всем пользователям. - Приватный ключ к этому сертификату в формате PEM.
Файл должен называться
key.pemи быть доступным для чтения всем пользователям.
Вы можете использовать для этого
директорию по умолчанию: /opt/hw-Hive/ssl.
Обратите внимание, что загруженные файлы не будут перезаписываться при обновлении на следующую версию, поэтому их можно хранить в этой директории. Обратите внимание на README.md файлы в этой директории.
Также можно хранить сертификаты в другой директории, если директория по умолчанию вам не подходит.
Например, в директории /opt/my/certs/.
Чтобы изменить директорию для TLS-сертификата и ключа, нужно изменить конфигурацию.
Пример:
Не забудьте выполнить реконфигурацию, как описано в главе Реконфигурация, чтобы изменения вступили в силу
Настройка HTTP/HTTPs
Чтобы настроить перенаправление с HTTP на HTTPs без использования стороннего обратного прокси-сервера, нужно изменить конфигурацию.
Пример:
[main]
b.ssl.enabled = ssl_redirect
b.deck.ip.expose = 0.0.0.0
b.deck.port.expose = 80
b.deck.https.ip.expose = 0.0.0.0
b.deck.https.port.expose = 443
В данном примере:
b.ssl.enabled— режим работы TLS. Возможные значения описаны ниже.b.deck.ip.expose— IP-адрес для небезопасного HTTP-соединения (0.0.0.0— внешний IP адрес,127.0.0.1— локальный IP адрес). Обязательно для режимовno_ssl,ssl_bothиssl_redirect.b.deck.port.expose— номер порта для небезопасного HTTP-соединения (значение по умолчанию — 80). Обязательно для режимовno_ssl,ssl_bothиssl_redirect.b.deck.https.ip.expose— IP-адрес для безопасного HTTPs-соединения (0.0.0.0— внешний IP-адрес,127.0.0.1— локальный IP-адрес). Обязательно для режимовssl_only,ssl_bothиssl_redirect.b.deck.https.port.expose— номер порта для безопасного HTTPs-соединения. Обязательно для режимовssl_only,ssl_bothиssl_redirect.
Режимы работы TLS b.ssl.enabled:
no_ssl— используется только HTTP-соединение (установлено по умолчанию);ssl_both— параллельно используется HTTP-соединение и HTTPs-соединение;ssl_redirect— используется перенаправление с HTTP-соединения на HTTPs-соединение;ssl_only— используется только HTTPs-соединение.
Не забудьте выполнить реконфигурацию, как описано в главе Реконфигурация, чтобы изменения вступили в силу
Настройка обратного прокси
При необходимости Hive может бежать за вашим обратным прокси-сервером.
В этой главе мы рассмотрим настройку nginx, который будет установлен на ту же машину
и будет проксировать все запросы на Hive.
В этой главе вы узнаете, как:
- настроить Hive, чтобы он не мешал обратному прокси;
- настроить
nginxв качестве обратного прокси.
Чтобы использовать свой прокси-сервер на этой же машине, необходимо изменить конфигурацию:
Не забудьте выполнить реконфигурацию, как описано в главе Реконфигурация, чтобы изменения вступили в силу
Пример 1. Конфигурации nginx с http и https:
server {
server_name your-hive.example.com;
access_log /var/log/nginx/your-hive.example.com-access.log;
error_log /var/log/nginx/your-hive.example.com-error.log;
client_max_body_size 0;
location / {
proxy_pass http://localhost:10002;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
listen 443 ssl;
ssl_certificate /path/to-your/certs/fullchain.pem;
ssl_certificate_key /path/to-your/certs/privkey.pem;
}
server {
if ($host = your-hive.example.com) {
return 301 https://$host$request_uri;
}
listen 80;
server_name your-hive.example.com;
return 404;
}
В данном примере:
10002— номер порта, который вы указали в опцииb.deck.port.exposeв файлеuser.ini;hive.example.com— имя хоста или IP-адрес вашей машины с установленным Hive.
Пример 2. Конфигурация nginx, готовая для использования с Let's Encrypt при помощи certbot:
Данную конфигурацию необходимо установить до выпуска сертификатов при помощи certbot.
server {
listen 80;
server_name your-hive.example.com;
access_log /var/log/nginx/your-hive.example.com-access.log;
error_log /var/log/nginx/your-hive.example.com-error.log;
client_max_body_size 0;
location / {
proxy_pass http://localhost:10002;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
В данном примере:
10002— номер порта, который вы указали в опцииb.deck.port.exposeв файлеuser.ini;hive.example.com— имя хоста или IP-адрес вашей машины с установленным Hive.
.