Как настроить https с прокси-сервером

 

Альтернативным вариантом настройки протокола HTTPS для связи клиента и сервера является использование прокси- сервера, как промежуточного звена между клиентом и сервером Аналитического портала. При этом сервер аналитического портала должен иметь соответствующие настройки.

Настройки сервера Аналитического портала

Сервер Аналитического портала сообщает клиенту аналитического портала информацию нужную для построения URL к API сервера, с указанием типа используемого протокола. При использовании HTTPS протокола, настроенного на прокси-сервере, связь прокси-сервера с Аналитическим порталом имеет смысл вести с использованием протокола HTTP, для снижения нагрузки. Нагрузка при этом ложится на прокси-сервер.

Если в настройках сервера выбрать в качестве протокола HTTPS, но файлы сертификата и закрытого ключа не загружать, то сервер будет использовать HTTP протокол, а параметры для построения URL клиенту будет сообщать нужные для построения HTTPS запросов.

WEB-клиент Файл настроек «modusbi.json» Значение настройки
Протокол сервера данных $.backend.protocol https
Ключ SSL - Файл не выбран
Сертификат SSL - Файл не выбран
 

Настройка «Протокол сервера данных» находящаяся в файле имеет приоритет перед аналогичной настройкой в WEB-клиенте. Если есть необходимость иметь возможность настраивать протокол из WEB-клиента, настройку из файла необходимо убрать (как значение, так и само свойство protocol).

Параметры «Ключ SSL» и «Сертификат SSL» настраиваются только из WEB-клиента.

Настройки прокси-сервера

  • Настройка прокси-сервера будет показана на примере Ngnix.
  • Операционная система: 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

Настройка завершена.