Публикация изолированного портала смены пароля через nginx reverse proxy

Для публикации портала смены пароля Avanpost DS с помощью Nginx необходимо выполнить шаги:

Шаг 1. Добавить в конфигурационный файл Контроллера домена Avanpost DS секцию настроек веб-интерфейса.

/opt/avanpost/ads/config/config.yaml
client: # Настройки web интерфейса
  port: 8080
  host: 127.0.0.1

Шаг 2. Перезагрузить сервис "ads".

Для этого необходимо выполнить команду:

sudo systemctl restart ads.service

Шаг 3. Настроить конфигурационный файл Nginx на выделенном сервере.

Для публикации с использованием протокола https требуются сертификаты, выданные вашим удостоверяющим центром.

Шаблон /etc/nginx/conf.d/adschangepswd.conf
server {
    listen       443 ssl;
    server_name  [FQDN];
    ssl_certificate     [Путь к SSL сертфикату];
    ssl_certificate_key [Путь к ключу SSL сертфиката];
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location /changepassword {
        proxy_pass       http://[IP КД Avanpost DS]:8080/changepassword;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /changepassword/ {
        proxy_pass       http://[IP КД Avanpost DS]:8080/changepassword;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /changepassword/public/changepass.css {
        proxy_pass       http://[IP КД Avanpost DS]:8080/public/changepass.css;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /favicon.ico {
        proxy_pass       http://[IP КД Avanpost DS]:8080/favicon.ico;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /fonts/RobotoRegular.ttf {
        proxy_pass       http://[IP КД Avanpost DS]:8080/fonts/RobotoRegular.ttf;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /fonts/RobotoRegular.woff {
        proxy_pass       http://[IP КД Avanpost DS]:8080/fonts/RobotoRegular.woff;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Заменить [FQDN] на полное доменное имя сервера для портала смены пароля.

Заменить [Путь к SSL сертфикату] на путь к файлу SSL сертификата.

Заменить [Путь к ключу SSL сертфиката] на путь к ключу для SSL сертификата.

Во всех секциях конфигурационного файла заменить [IP КД Avanpost DS] на IP-адрес контроллера домена Avanpost DS.

Пример /etc/nginx/conf.d/adschangepswd.conf
server {
    listen       443 ssl;
    server_name  cl01.avanpost.local;
    ssl_certificate     /opt/cl01.avanpost.local.crt;
    ssl_certificate_key /opt/cl01.avanpost.local.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location /changepassword {
        proxy_pass       http://10.1.1.11:8080/changepassword;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /changepassword/ {
        proxy_pass       http://10.1.1.11:8080/changepassword;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /changepassword/public/changepass.css {
        proxy_pass       http://10.1.1.11:8080/public/changepass.css;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /favicon.ico {
        proxy_pass       http://10.1.1.11:8080/favicon.ico;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /fonts/RobotoRegular.ttf {
        proxy_pass       http://10.1.1.11:8080/fonts/RobotoRegular.ttf;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /fonts/RobotoRegular.woff {
        proxy_pass       http://10.1.1.11:8080/fonts/RobotoRegular.woff;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Шаг 4. Проверить валидность конфигурационного файла "adschangepswd.conf".

Для этого требуется выполнить команду:

sudo nginx -t

Шаг 5. Перезапустить сервис "nginx".

Для этого требуется выполнить команду:

sudo systemctl restart nginx

Шаг 6. Зайти на портал смены пароля.

Для этого требуется перейти в браузере по адресу:

Шаблон адреса
https://[FQDN]/changepassword
Пример адреса
https://cl01.avanpost.local/changepassword

Обсуждение