Всем привет! Мой Unifi контроллер работает за обратным прокси Nginx, и всё отлично (ниже добавлю конфиг сайта nginx для тех, кому интересно). Контроллер доступен по адресу unifi.url.com, nginx у меня обрабатывает HTTPS/SSL, и жизнь прекрасна. Но вот с гостевым captive portal всё оказалось не так просто. Есть ли способ сделать гостевую переадресацию без указания порта? Чтобы прокси сам управлял портом. То есть вместо того, чтобы отправлять пользователей на или , хочу, чтобы их редиректило просто на http(s)://guest.url.com.
Инфраструктура такова:
10.0.1.18 — мой обратный прокси Nginx.
10.0.1.3 — сервер с установленным Unifi Controller.
В DNS прописаны записи, которые направляют guest.url.com и unifi.url.com на 10.0.1.18, чтобы nginx мог проксировать оба сайта. Для страницы Unifi контроллера всё работает отлично, а вот с гостевым captive portal — нет.
Поведение гостевой переадресации при использовании простого пароля таково, что пользователей отправляют на url.com:8880 (или :8843, если в config.properties включён HTTPS). Проблема в том, что пользователей направляет на мой Nginx-прокси (guest.url.com), что и нужно, но указанный порт — не 443, а 8880/8843. Вот красивый чистый URL с портом 443, который позволил бы nginx корректно проксировать запрос. А так как nginx не слушает на 8880 или 8843, запрос просто отбрасывается.
Буду признателен за помощь, чтобы настроить поведение так, как мне нужно.
Ниже мой конфиг nginx для unifi.url.com, который также заставляет использовать HTTPS:
server {
listen 80;
server_name unifi.url.com;
return 302 ;
}
server {
listen 443;
server_name unifi.url.com;
ssl_certificate /config/keys/url_com.pem;
ssl_certificate_key /config/keys/url_com.key;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC4-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /config/keys/dhparams.pem;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
location / {
proxy_pass ;
}
}
Инфраструктура такова:
10.0.1.18 — мой обратный прокси Nginx.
10.0.1.3 — сервер с установленным Unifi Controller.
В DNS прописаны записи, которые направляют guest.url.com и unifi.url.com на 10.0.1.18, чтобы nginx мог проксировать оба сайта. Для страницы Unifi контроллера всё работает отлично, а вот с гостевым captive portal — нет.
Поведение гостевой переадресации при использовании простого пароля таково, что пользователей отправляют на url.com:8880 (или :8843, если в config.properties включён HTTPS). Проблема в том, что пользователей направляет на мой Nginx-прокси (guest.url.com), что и нужно, но указанный порт — не 443, а 8880/8843. Вот красивый чистый URL с портом 443, который позволил бы nginx корректно проксировать запрос. А так как nginx не слушает на 8880 или 8843, запрос просто отбрасывается.
Буду признателен за помощь, чтобы настроить поведение так, как мне нужно.
Ниже мой конфиг nginx для unifi.url.com, который также заставляет использовать HTTPS:
server {
listen 80;
server_name unifi.url.com;
return 302 ;
}
server {
listen 443;
server_name unifi.url.com;
ssl_certificate /config/keys/url_com.pem;
ssl_certificate_key /config/keys/url_com.key;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC4-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /config/keys/dhparams.pem;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
location / {
proxy_pass ;
}
}
