Как настроить https с прокси-сервером
3 минутное чтение
Альтернативным вариантом настройки протокола HTTPS для связи клиента и сервера является использование прокси- сервера, как промежуточного звена между клиентом и сервером Аналитического портала. При этом сервер аналитического портала должен иметь соответствующие настройки.
Настройки сервера Аналитического портала
Сервер Аналитического портала сообщает клиенту аналитического портала информацию нужную для построения URL к API сервера, с указанием типа используемого протокола. При использовании HTTPS протокола, настроенного на прокси-сервере, связь прокси-сервера с Аналитическим порталом имеет смысл вести с использованием протокола HTTP, для снижения нагрузки. Нагрузка при этом ложится на прокси-сервер.
Если в настройках сервера выбрать в качестве протокола HTTPS, но файлы сертификата и закрытого ключа не загружать, то сервер будет использовать HTTP протокол, а параметры для построения URL клиенту будет сообщать нужные для построения HTTPS запросов.
WEB-клиент | Файл настроек «modusbi.json» | Значение настройки |
---|---|---|
Протокол сервера данных | $.backend.protocol |
https |
Ключ SSL | - | Файл не выбран |
Сертификат SSL | - | Файл не выбран |
Примечания:
- Настройка «Протокол сервера данных» находящаяся в файле имеет приоритет перед аналогичной настройкой в WEB-клиенте. Если есть необходимость иметь возможность настраивать протокол из WEB-клиента, настройку из файла необходимо убрать (как значение, так и само свойство
protocol
).- Параметры «Ключ SSL» и «Сертификат SSL» настраиваются только из WEB-клиента.
Настройки прокси-сервера
Настройка прокси-сервера будет показана на примере Ngnix.
Nginx
Операционная система: Debian GNU/Linux 12 (bookworm).
Способ установки: из репозитория дистрибутива.
Шаг 1. Обновление информации и установка Ngnix
Обновляем информацию о репозитории и устанавливаем пакет Ngnix:
apt-get update
apt-get install nginx
Шаг 2. Перенос файлов в каталоги
Помещаем сертификат и ключ в каталоги:
cp ./ssl-cert.pem /etc/ssl/certs/
cp ./ssl-cert.key /etc/ssl/private/
Шаг 3. Создание файла конфигурации
Создаем файл конфигурации SSL nginx:
nano /etc/nginx/snippets/ssl.conf
Добавляем строки о сертификате и ключе в созданный файл:
ssl_certificate /etc/ssl/certs/ssl-cert.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert.key;
Сохраняем изменения.
Шаг 4. Настройка файла nginx
Настраиваем Ngnix. Удаляем link дефолтного файла конфигурации:
rm /etc/nginx/sites-enabled/*
Создаём новый файл конфигурации:
nano /etc/nginx/sites-available/new_site
Добавляем в файл строки:
server {
listen 443 ssl;
server_name new_site;
include snippets/ssl.conf;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 200M;
proxy_max_temp_file_size 0;
proxy_buffering off;
}
}
, где
http://127.0.0.1:3000
— адрес сервера и порта на котором запущена служба Аналитического портала.new_site
— адрес сайта.
Сохраняем и выходим.
Создаем link на созданный нами файл конфигурации:
ln -s /etc/nginx/sites-available/new_site /etc/nginx/sites-enabled/new_site
Шаг 5. Настройка внешнего адреса в файле «modusbi.json»
Необходимо настроить параметры подключения к серверу Backend в файле «modusbi.json». К указанному адресу будут обращаться клиентские соединения из браузера при работе с аналитическим порталом. В общем случае обращение должно выполняться к устройству, на котором запущен аналитический портал.
Примечание: По умолчанию сервер обращается к локальному хосту 127.0.0.1 на порт 3000. Для работы с других устройств необходимо указать значения и параметры подключения к внутреннему или внешнему адресу сервера, с указанием протокола, по которому будет проходить соединение.
Добавляем в файл «modusbi.json» строки:
{
...
"backend": {
"protocol": "https",
"host": "new_site",
"port": 443,
"base_url": "/v1/api/"
}
...
}
, где
new_site
— адрес сайта.
Шаг 6. Перезагрузка
Перезапускаем службу Nginx:
systemctl reload nginx.service
Настройка завершена.