Download PDF
Download page Адреса панели управления.
Адреса панели управления
Статья описывает настройку адресов, по которым будет доступен веб-интерфейс платформы. Вы можете выполнить настройки через веб-интерфейс BILLmanager или через изменение файлов конфигурации. Настройки, выполненные в веб-интерфейсе, добавляются в файл конфигурации сервиса ihttpd — /usr/local/mgr5/etc/ihttpd.conf.
По умолчанию платформа работает через встроенный веб-сервер — ihttpd. Веб-интерфейс доступен по следующему адресу:
URL web-интерфейса. Порт 1500
https://<IP-адрес_сервера>:1500/billmgr
Добавление нового адреса
Чтобы добавить новый адрес, перейдите в раздел Настройки → Адреса панели → кнопка Создать. Заполните форму:
- IP-адрес — выберите IP-адрес, который будет использоваться для приёма входящих соединений.
Порт — укажите номер порта, который будет использован для приёма входящих соединений. Если оставить это поле пустым, будет использован порт по умолчанию — 1500.
Обратите внимание!
При изменении порта BILLmanager может стать недоступным. Перед изменением откройте в правилах брандмауэра ОС порт, который нужно назначить платформе.
Запретить HTTP соединения — включите опцию, чтобы перенаправлять все запросы на HTTPS. С выключенной опцией встроенный веб-сервер может принимать запросы как по HTTP, так и по HTTPS-протоколам.
- 80 порт используется по умолчанию в протоколе HTTP.
443 порт используется по умолчанию в протоколе HTTPS.
Не включайте опцию Запретить HTTP соединения в настройках адреса с 80 и 443 портами одновременно.
Чтобы адрес открывался через HTTPS-соединение, подключите для адреса SSL-сертификат.
- Удалить адреса — активируйте опцию, чтобы удалить все адреса, которые прослушивают указанный порт.
Доступ к интерфейсу по доменному имени
Чтобы веб-интерфейс открывался по доменному имени, настройте:
- ihttpd;
- связку nginx + ihttpd.
Чтобы переходить к веб-интерфейсу по домену, установите соответствие между доменным именем и IP-адресом платформы через А-запись.
Настройка ihttpd
Для доступа к веб-интерфейсу BILLmanager требуются порты 1500, 443, 80. Если на сервере с платформой запускаются сторонние приложения, настройте доступ к портам таким образом, чтобы они не пересекались с портами для BILLmanager.
Если на сервере не планируется запуск сторонних веб-приложений:
Измените порты веб-сервера на 80 и 443, например:
Файл конфигурации /usr/local/mgr5/etc/ihttpd.conf
listen { ip <адрес> port 443 redirect } listen { ip <адрес> port 80 redirect }
CODE<адрес> — публичный IP-адрес сервера
При такой настройке ihttpd будет принимать соединения на порты 80 и 443. При этом с порта 80 назначено перенаправление (редирект) на порт 443.
После изменения файла конфигурации перезапустите сервис:
service ihttpd restart
CODE
Настройка nginx + ihttpd
- Настройка Nginx:
Если Nginx не установлен, установите его:
Ubuntu
apt-get install nginx
CODEAlmaLinux
dnf install nginx
CODEAlmaLinux
firewall-cmd --zone=public --permanent --add-port=80/tcp firewall-cmd --zone=public --permanent --add-port=443/tcp
CODEДобавьте в файл конфигурации nginx /etc/nginx/nginx.conf следующие строки:
Файл конфигурации nginx
server { listen 10.10.10.10:443 ssl; server_name my.domain.com; ssl_certificate /usr/local/mgr5/etc/manager.crt; rewrite ^(.*)$ https://$server_name$1 permanent; <!-- добавьте, чтобы веб-интерфейс платформы открывался через протокол https --> ssl_certificate_key /usr/local/mgr5/etc/manager.key; set $mgr_proxy "https://10.10.10.10:1500"; location ^~ /manimg/ { alias /usr/local/mgr5/skins/; } location / { proxy_pass $mgr_proxy; proxy_redirect $mgr_proxy /; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Secret mary123; chunked_transfer_encoding off; } location ^~ /mancgi/ { proxy_pass $mgr_proxy; proxy_redirect $mgr_proxy /; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Secret mary123; <!-- секретная фраза ForwardedSecret --> chunked_transfer_encoding off; } }
CODEmy.domain.com — доменное имя, используемое в рамках примера. Вместо него вставьте приобретённый домен
ForwardedSecret — в случае Nginx, это набор букв и цифр, которые представляют собой ключ. Данный ключ используется при проверке аутентификации по ограниченному списку IP-адресов. Требуется для защиты от несанкционированных попыток аутентификации.
Секретная фраза должна совпадать в файлах конфигурации:
- Nginx — директива proxy_set_header X-Forwarded-Secret;
- BILLmanager — директива ForwardedSecret;
- COREmanager — директива ForwardedSecret.
- Добавьте секретную фразу в файл конфигурации BILLmanager /usr/local/mgr5/etc/billmgr.conf в директиву ForwardedSecret.
- Добавьте секретную фразу в файл конфигурации COREmanager /usr/local/mgr5/etc/core.conf в директиву ForwardedSecret.
После редактирования конфигурационных файлов, перезапустите платформу:
/usr/local/mgr5/sbin/mgrctl -m billmgr exit
XMLПерезапустите Nginx:
service nginx restart
CODE
- Настройка ihttpd. Чтобы избежать циклической переадресации:
- Удалите строку со значением "redirect" в файле конфигурации ihttpd /usr/local/mgr5/etc/ihttpd.conf.
Перезапустите сервис:
service ihttpd restart
CODE
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 будет выполнена проверка, что вы являетесь владельцем домена.
Чтобы добавить сертификат, перейдите в раздел Настройки → Адреса панели → кнопка Сертификаты → кнопка Добавить:
- Тип сертификата — способ создания SSL-сертификата. Выберите "Let`s Encrypt сертификат".
- Доменное имя сертификата — укажите имена доменов в сертификате.
- IP-адрес — выберите адрес платформы, к которому будет привязан сертификат. В списке отображаются IP-адреса, которые настроены в разделе Адреса панели.
При заказе сертификата в директории /usr/local/mgr5/www/letsencrypt/.well-known/acme-challenge:
- Создаётся файл с токеном и данными для проверки. Сервис проверки Let’s Encrypt выполняет запрос по доменному имени и считывает этот токен.
После выдачи SSL-сертификата в планировщик добавляется задание, которое проверяет необходимость продления SSL-сертификата:
0 0 * * * "/usr/local/mgr5/etc/scripts/acmesh"/acme.sh --cron --home "/usr/local/mgr5/etc/scripts/acmesh" > /dev/null
CODE
При выпуске нескольких сертификатов для доменных имён третьего уровня и выше может возникнуть ошибка выпуска сертификата на большое количество поддоменов. Это ограничение Let’s Encrypt, выдача сертификатов будет продолжена спустя некоторое время (обычно в пределах суток).
Поддерживается работа совместно с веб-сервером Apache и Nginx. Если никакой веб-сервер не запущен, то запускается встроенный сервер, который будет принимать запросы от Let’s Encrypt во время проверки домена.
Добавить существующий сертификат
При добавлении существующего сертификата соответствие домена и IP-адреса не проверяется. В случае несоответствия доменного имени и IP-адреса такой сертификат в списке будет отмечен соответствующей пиктограммой.
Чтобы добавить сертификат, перейдите в раздел Настройки → Адреса панели → кнопка Сертификаты → кнопка Добавить:
- Тип сертификата — выберите "Существующий сертификат".
- Доменное имя сертификата — доменное имя, для которого будет выпущен SSL-сертификат. Поле недоступно для изменения, значение будет взято из сертификата.
- IP-адрес — выберите адрес платформы, к которому будет привязан SSL-сертификат. В списке отображаются IP-адреса, которые настроены в разделе Настройки → Адреса панели.
- SSL сертификат — укажите ваш SSL-сертификат.
- Ключ SSL сертификата — укажите ключ вашего SSL-сертификата.
- Цепочка SSL-сертификатов — укажите цепочку SSL-сертификатов, которая будет добавлена в файл сертификата.
Настроить сертификат для нескольких портов
Let's Encrypt выпускает сертификат только на домен, а не на порт. Если вам нужно для каждого порта указать отдельный домен, вы можете использовать для этого отдельные сертификаты.
Чтобы прописать сертификат на несколько портов:
Добавьте секции для нужных портов в конфигурационный файл /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 } }
CODE- <IP-адрес> — публичный IP-адрес сервера
- domain_cert etc/manager.crt — путь до цепочки сертификата
- domain_key etc/manager.key — путь до ключа сертификата
- bill.domain.ru — ваш домен BILLmanager
Перезапустите ihttpd:
systemctl restart ihttpd
CODEПерезапустите BILLmanager:
/usr/local/mgr5/sbin/mgrctl -m billmgr -R
CODE
Удалить сертификат адреса панели
Чтобы удалить SSL-сертификат, выберите его в списке и нажмите кнопку Удалить. Для доступа по IP-адресу будет использоваться самоподписанный сертификат по умолчанию.