По умолчанию панель управления работает через встроенный веб-сервер — ihttpd-dns. Веб-интерфейс доступен по следующему адресу:
https://<IP-адрес сервера>:1501/dnsmgrНастроить URL можно так, чтобы панель управления открывалась по переходу на доменное имя.
Есть два варианта настройки:
- настройка ihttpd-dns;
- настройка связки nginx + ihttpd-dns.
Настройка ihttpd-dns
Для запуска веб-сервера в DNSmanager 6 используется служба ihttpd-dns.
Если на сервере не планируется запуск сторонних веб-приложений, то изменяются порты веб-сервера на 80 и 443, например:
listen {
ip 10.10.10.10
port 443
}
listen {
ip 10.10.10.10
port 80
redirect
}При такой настройке, ihttpd-dns будет принимать соединения на порты 80 и 443. При этом с порта 80 назначено перенаправление (редирект) на порт 443.
После изменения файла конфигурации требуется перезапуск сервиса:
service ihttpd-dns restartНастройка nginx + ihttpd-dns
Для установки Nginx выполните:
Настройка Nginx
Добавьте в файл конфигурации nginx /etc/nginx/nginx.conf или в созданный файл /etc/nginx/conf.d следующие строки:
server {
listen 10.10.10.10:443 ssl;
server_name my.domain.com;
ssl_certificate /opt/ispsystem/dnsmanager6/etc/manager.crt;
ssl_certificate_key /opt/ispsystem/dnsmanager6/etc/manager.key;
set $mgr_proxy "https://10.10.10.10:1501";
location ^~ /manimg/ {
alias /opt/ispsystem/dnsmanager6/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;
chunked_transfer_encoding off;
}
}ForwardedSecret — в случае nginx, это набор букв и цифр, которые представляют собой ключ, используемый при проверке аутентификации по ограниченному списку IP-адресов. Требуется для защиты от несанкционированных попыток аутентификации.
Секретная фраза, указанная в файле конфигурации nginx (директива proxy_set_header X-Forwarded-Secret) должна совпадать с фразой, указанной в файлах конфигурации панели управления (dnsmgr.conf, директива ForwardedSecret).
При добавлении секретной фразы в файл конфигурации nginx, добавьте её и в файлы конфигурации панели управления (/opt/ispsystem/dnsmanager6/etc/dnsmgr.conf).
После редактирования конфигурационного файла панели управления, перезапустите её:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr exitЧтобы панель управления открывалась через протокол https, настройте редирект. Для этого в файл конфигурации nginx добавьте строки:
server {
listen 10.10.10.10:80;
server_name my.domain.com;
rewrite ^(.*)$ https://$server_name$1 permanent;
}После изменения конфигурации перезапустите nginx:
service nginx restartНастройка ihttpd-dns
Чтобы избежать циклической переадресации, в файле конфигурации ihttpd /opt/ispsystem/dnsmanager6/etc/ihttpd.conf удалите строку со значением "redirect".
SSL-сертификаты адресов
Вы можете добавить SSL-сертификаты для адресов или доменного имени панели управления. Для создания сертификатов доменных имён необходима поддержка 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.
Чтобы добавить сертификат, перейдите в раздел Настройки → Адреса панели → кнопка Сертификаты → кнопка Добавить:
- Тип сертификата — способ создания SSL-сертификата. Выберите "Let`s Encrypt сертификат".
- Доменное имя сертификата — укажите имена доменов в сертификате.
- IP-адрес — выберите адрес платформы, к которому будет привязан сертификат. В списке отображаются IP-адреса, которые настроены в разделе Адреса панели.
При заказе сертификата в директории /opt/ispsystem/dnsmanager6/www/letsencrypt/.well-known/acme-challenge:
- Создаётся файл с токеном и данными для проверки. Сервис проверки Let’s Encrypt выполняет запрос по доменному имени и считывает этот токен.
-
После выдачи SSL-сертификата в планировщик добавляется задание, которое проверяет необходимость продления SSL-сертификата:
0 0 * * * "/opt/ispsystem/dnsmanager6/etc/scripts/acmesh"/acme.sh --cron --home "/opt/ispsystem/dnsmanager6/etc/scripts/acmesh" > /dev/null
При выпуске нескольких сертификатов для доменных имён третьего уровня и выше может возникнуть ошибка выпуска сертификата на большое количество поддоменов. Это ограничение Let’s Encrypt, выдача сертификатов будет продолжена спустя некоторое время (обычно в пределах суток).
Поддерживается работа совместно с веб-сервером Apache и Nginx. Если никакой веб-сервер не запущен, то запускается встроенный сервер, который будет принимать запросы от Let’s Encrypt во время проверки домена.
Добавить существующий сертификат
При добавлении существующего сертификата соответствие домена и IP-адреса не проверяется. В случае несоответствия доменного имени и IP-адреса такой сертификат в списке будет отмечен соответствующей пиктограммой.
Чтобы добавить сертификат, перейдите в раздел Настройки → Адреса панели → кнопка Сертификаты → кнопка Добавить:
- Тип сертификата — выберите "Существующий сертификат".
- Доменное имя сертификата — доменное имя, для которого будет выпущен SSL-сертификат. Поле недоступно для изменения, значение будет взято из сертификата.
- IP-адрес — выберите адрес платформы, к которому будет привязан SSL-сертификат. В списке отображаются IP-адреса, которые настроены в разделе Настройки → Адреса панели.
- SSL сертификат — укажите ваш SSL-сертификат.
- Ключ SSL сертификата — укажите ключ вашего SSL-сертификата.
- Цепочка SSL-сертификатов — укажите цепочку SSL-сертификатов, которая будет добавлена в файл сертификата.
Настроить сертификат для нескольких портов
Let's Encrypt выпускает сертификат только на домен, а не на порт. Если вам нужно для каждого порта указать отдельный домен, вы можете использовать для этого отдельные сертификаты.
Чтобы прописать сертификат на несколько портов:
-
Добавьте секции для нужных портов в конфигурационный файл /opt/ispsystem/dnsmanager6/etc/ihttpd.conf:
listen { ip <IP-адрес> redirect sni { domain_cert etc/manager.crt domain_key etc/manager.key domains dns.example.ru } } listen { ip <IP-адрес> port 443 redirect sni { domain_cert etc/manager.crt domain_key etc/manager.key domains dns.example.ru } }Пояснение -
Перезапустите ihttpd:
systemctl restart ihttpd -
Перезапустите DNSmanager:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R
Удалить сертификат адреса панели
Чтобы удалить SSL-сертификат, выберите его в списке и нажмите кнопку Удалить. Для доступа по IP-адресу будет использоваться самоподписанный сертификат по умолчанию.