Настройка доступа по 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 сертификата и ключа, нужно изменить конфигурацию.
Например:
Не забудьте сделать reconfig
как указано в параграфе
Реконфигурация что бы изменения вступили в силу.
Настройка 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-соединение.
Не забудьте сделать reconfig
как указано в параграфе
Реконфигурация что бы изменения вступили в силу.
Настройка обратного прокси
При необходимости Hive может бежать за вашим собственным обратным прокси сервером.
В этом параграфе мы рассмотрим настройку nginx
, который будет установлен на ту же машину
и будет проксировать все запросы на Hive.
В этом параграфе мы сделаем:
- настроим Hive что бы он не мешал обратному прокси;
- настроим
nginx
в качестве обратного прокси.
Чтобы использовать свой прокси сервер на этой же машине, необходимо изменить конфигурацию:
Не забудьте сделать reconfig
как указано в параграфе
Реконфигурация что бы изменения вступили в силу.
Пример №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.