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

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

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

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

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

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

Примечания:

  1. Настройка «Протокол сервера данных» находящаяся в файле имеет приоритет перед аналогичной настройкой в WEB-клиенте. Если есть необходимость иметь возможность настраивать протокол из WEB-клиента, настройку из файла необходимо убрать (как значение, так и само свойство protocol).
  2. Параметры «Ключ 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

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