Документация BILLmanager 6

Адреса панели управления

Статья описывает настройку адресов, по которым будет доступен веб-интерфейс платформы. Вы можете выполнить настройки через веб-интерфейс BILLmanager или через изменение файлов конфигурации. Настройки, выполненные в веб-интерфейсе, добавляются в файл конфигурации сервиса ihttpd — /usr/local/mgr5/etc/ihttpd.conf.

По умолчанию платформа работает через встроенный веб-сервер — ihttpd. Веб-интерфейс доступен по следующему адресу:

URL web-интерфейса. Порт 1500
https://<IP-адрес_сервера>:1500/billmgr

Добавление нового адреса

Чтобы добавить новый адрес, перейдите в раздел НастройкиАдреса панели → кнопка Создать. Заполните форму:

  1. IP-адрес — выберите IP-адрес, который будет использоваться для приёма входящих соединений.
  2. Порт — укажите номер порта, который будет использован для приёма входящих соединений. Если оставить это поле пустым, будет использован порт по умолчанию — 1500.

    Обратите внимание!
    При изменении порта BILLmanager может стать недоступным. Перед изменением откройте в правилах брандмауэра ОС порт, который нужно назначить платформе.
  3. Запретить HTTP соединения — включите опцию, чтобы перенаправлять все запросы на HTTPS. С выключенной опцией встроенный веб-сервер может принимать запросы как по HTTP, так и по HTTPS-протоколам.

    • 80 порт используется по умолчанию в протоколе HTTP.
    • 443 порт используется по умолчанию в протоколе HTTPS.

      Не включайте опцию Запретить HTTP соединения в настройках адреса с 80 и 443 портами одновременно.

      Чтобы адрес открывался через HTTPS-соединение, подключите для адреса SSL-сертификат.

  4. Удалить адреса — активируйте опцию, чтобы удалить все адреса, которые прослушивают указанный порт.

Доступ к интерфейсу по доменному имени

Чтобы веб-интерфейс открывался по доменному имени, настройте:

  • ihttpd;
  • связку nginx + ihttpd.
Чтобы переходить к веб-интерфейсу по домену, установите соответствие между доменным именем и IP-адресом платформы через А-запись.

Настройка ihttpd

Для доступа к веб-интерфейсу BILLmanager требуются порты 1500, 443, 80. Если на сервере с платформой запускаются сторонние приложения, настройте доступ к портам таким образом, чтобы они не пересекались с портами для BILLmanager.

Если на сервере не планируется запуск сторонних веб-приложений:

  1. Измените порты веб-сервера на 80 и 443, например:

    Файл конфигурации /usr/local/mgr5/etc/ihttpd.conf
    listen {
    		ip <адрес>
    		port 443
    		redirect
    }       
    listen {
           ip <адрес>
           port 80
           redirect
    }
    Пояснение

    При такой настройке ihttpd будет принимать соединения на порты 80 и 443. При этом с порта 80 назначено перенаправление (редирект) на порт 443.

  2. После изменения файла конфигурации перезапустите сервис:

    service ihttpd restart

Настройка nginx + ihttpd

  1. Настройка Nginx:
    1.  Если Nginx не установлен, установите его:

      Ubuntu
      apt-get install nginx 
      AlmaLinux
      dnf install nginx
      Откройте порты на AlmaLinux
    2. Добавьте в файл конфигурации nginx /etc/nginx/nginx.conf следующие строки:

      Файл конфигурации /etc/nginx/nginx.conf
      Пояснения

      ForwardedSecret — в случае Nginx, это набор букв и цифр, которые представляют собой ключ. Данный ключ используется при проверке аутентификации по ограниченному списку IP-адресов. Требуется для защиты от несанкционированных попыток аутентификации.

      Секретная фраза должна совпадать в файлах конфигурации:

      • Nginx — директива proxy_set_header X-Forwarded-Secret;
      • BILLmanager — директива ForwardedSecret;
      • COREmanager — директива ForwardedSecret.
    3. Добавьте секретную фразу в файл конфигурации BILLmanager /usr/local/mgr5/etc/billmgr.conf в директиву ForwardedSecret.
    4. Добавьте секретную фразу в файл конфигурации COREmanager /usr/local/mgr5/etc/core.conf в директиву ForwardedSecret.
    5. После редактирования конфигурационных файлов, перезапустите платформу:

      /usr/local/mgr5/sbin/mgrctl -m billmgr exit
    6. Перезапустите Nginx:

      service nginx restart
  2. Настройка ihttpd. Чтобы избежать циклической переадресации:
    1. Удалите строку со значением "redirect" в файле конфигурации ihttpd /usr/local/mgr5/etc/ihttpd.conf.
    2. Перезапустите сервис:

      service ihttpd restart

SSL-сертификаты адресов

Вы можете добавить SSL-сертификаты для адресов или доменного имени (необходима поддержка Server Name Indication) платформы.

Server Name Indication

SSL-сертификаты для адресов платформы необходимы, чтобы можно было зайти в веб-интерфейс через протокол HTTPS по IP-адресу или доменному имени.

Чтобы управлять SSL-сертификатами в платформе, перейдите в раздел НастройкиАдреса панели → кнопка Сертификаты.

Добавить Let’s Encrypt сертификат

Let’s Encrypt — некоммерческий удостоверяющий центр, который предоставляет бесплатные сертификаты X.509 для TLS-шифрования. Шифрование осуществляется с помощью автоматизированного процесса. Создание, проверка, подпись, установка и обновление сертификата выполняются автоматически. Подробнее см. на официальном сайте сервиса Let’s Encrypt.

Основные ограничения Let’s Encrypt:

  • можно заказать 50 сертификатов в неделю (домен верхнего уровня (TLD), включая его поддомены);
  • срок действия Let’s Encrypt сертификата 3 месяца. Это означает, что каждые 3 месяца будет выполняться перевыпуск Let’s Encrypt сертификатов.

Существуют и другие ограничения. Подробнее в документации Let’s Encrypt.

Перед добавлением сертификата Let’s Encrypt убедитесь, что доменное имя ведёт на существующий IP-адрес платформы. При добавлении сертификата Let’s Encrypt будет выполнена проверка, что вы являетесь владельцем домена.

Чтобы добавить сертификат, перейдите в раздел НастройкиАдреса панели → кнопка Сертификаты → кнопка Добавить:

  1. Тип сертификата — способ создания SSL-сертификата. Выберите "Let`s Encrypt сертификат".
  2. Доменное имя сертификата — укажите имена доменов в сертификате.
  3. IP-адрес — выберите адрес платформы, к которому будет привязан сертификат. В списке отображаются IP-адреса, которые настроены в разделе Адреса панели.

При заказе сертификата в директории /usr/local/mgr5/www/letsencrypt/.well-known/acme-challenge:

  1. Создаётся файл с токеном и данными для проверки. Сервис проверки Let’s Encrypt выполняет запрос по доменному имени и считывает этот токен.
  2. После выдачи SSL-сертификата в планировщик добавляется задание, которое проверяет необходимость продления SSL-сертификата:

    0 0 * * * "/usr/local/mgr5/etc/scripts/acmesh"/acme.sh --cron --home "/usr/local/mgr5/etc/scripts/acmesh" > /dev/null

При выпуске нескольких сертификатов для доменных имён третьего уровня и выше может возникнуть ошибка выпуска сертификата на большое количество поддоменов. Это ограничение Let’s Encrypt, выдача сертификатов будет продолжена спустя некоторое время (обычно в пределах суток).

Поддерживается работа совместно с веб-сервером Apache и Nginx. Если никакой веб-сервер не запущен, то запускается встроенный сервер, который будет принимать запросы от Let’s Encrypt во время проверки домена.

Добавить существующий сертификат

При добавлении существующего сертификата соответствие домена и IP-адреса не проверяется. В случае несоответствия доменного имени и IP-адреса такой сертификат в списке будет отмечен соответствующей пиктограммой.

Чтобы добавить сертификат, перейдите в раздел НастройкиАдреса панели → кнопка Сертификаты → кнопка Добавить:

  1. Тип сертификата — выберите "Существующий сертификат".
  2. Доменное имя сертификата — доменное имя, для которого будет выпущен SSL-сертификат. Поле недоступно для изменения, значение будет взято из сертификата.
  3. IP-адрес — выберите адрес платформы, к которому будет привязан SSL-сертификат. В списке отображаются IP-адреса, которые настроены в разделе НастройкиАдреса панели.
  4. SSL сертификат — укажите ваш SSL-сертификат.
  5. Ключ SSL сертификата — укажите ключ вашего SSL-сертификата.
  6. Цепочка SSL-сертификатов — укажите цепочку SSL-сертификатов, которая будет добавлена в файл сертификата.

Настроить сертификат для нескольких портов

Let's Encrypt выпускает сертификат только на домен, а не на порт. Если вам нужно для каждого порта указать отдельный домен, вы можете использовать для этого отдельные сертификаты.

Чтобы прописать сертификат на несколько портов:

  1. Добавьте секции для нужных портов в конфигурационный файл /usr/local/mgr5/etc/ihttpd.conf:

    listen {
            ip <IP-адрес>
            redirect
            sni {
                    domain_cert etc/manager.crt
                    domain_key etc/manager.key
                    domains bill.domain.ru
            }
    }
    
    listen {
            ip <IP-адрес>
            port 443
            redirect
    
            sni {
                    domain_cert etc/manager.crt
                    domain_key etc/manager.key
                    domains bill.domain.ru
            }        
    }
    Пояснение
  2. Перезапустите ihttpd:

    systemctl restart ihttpd
  3. Перезапустите BILLmanager:

    /usr/local/mgr5/sbin/mgrctl -m billmgr -R

Удалить сертификат адреса панели

Чтобы удалить SSL-сертификат, выберите его в списке и нажмите кнопку Удалить. Для доступа по IP-адресу будет использоваться самоподписанный сертификат по умолчанию.