2016-02-10 4 views
0

У меня есть локальный портал (невольный портал), который является https и перенаправляет все HTTP-запросы на локальный https. Но перенаправление запросов с https на локальный портал https не работает вообще. Вот как я настроил Nginx:nginx перенаправить все https-запросы на локальный портал https

upstream flask_portal { 
    server unix:/tmp/flask_portal.sock; 
} 

server { 
    listen 172.31.3.1:443 default_server; 
    rewrite ^(.*) https://my_site.com?url=$server_name$1; 
} 

server { 
    listen 172.31.3.1:80 default_server; 
    listen 172.31.3.1:443 ssl; 
    server_name my_site.com; 
    ssl_certificate  my_site.com.cert; 
    ssl_certificate_key my_site.com.key; 

    location/{ 
     uwsgi_pass flask_portal; 
     include uwsgi_params; 
    } 
} 

Когда я проверить его с завитком на https://www.google.com он сообщает:

curl: (35) Unknown SSL protocol error in connection to www.googlw.com:443 

Я думаю, Nginx должен перенаправить www.Google ком на my_site.com и локон должен спросить my_site, но это не так.

ответ

1

не может перенаправить https, потому что ваш сертификат не соответствует www.google.com или * .google.com, и поэтому браузер (по праву) не сможет к нему присоединиться. Curl (и ваш браузер) никогда не увидит переадресацию, поскольку для этого потребуется успешное рукопожатие.

Что вы можете сделать это сообщить браузеру, что вы пленный портал: https://www.chromium.org/chromium-os/chromiumos-design-docs/network-portal-detection

+0

Мобильных устройства обнаружения адаптивного портала хорошо, как это делают некоторые операционные системы (Elementary OS, например), и хром браузеру это тоже. И они работают очень хорошо. Но некоторые браузеры не обнаруживают портативный портал (например, Firefox), поэтому, если кто-то использует этот вид браузеров, он получит страницу с ошибкой SSL вместо страницы портала. Поэтому пользователь может не понимать, что для доступа в Интернет ему нужно открыть любую HTTP-ссылку и просто закрыть веб-браузер. Мне не удалось найти решение проблемы. @jdewald, спасибо, что ответили. Я просто пойду на то, чтобы растратить его, чтобы разрешить это. – koganig

+0

Если Firefox не обнаруживает доступный портал (https://wiki.mozilla.org/Necko/CaptivePortal), вы не можете решить проблему для веб-страниц https: FF думает, что вы в Интернете, и это не тот сервер, на котором вы спросите этот ответ, таким образом, это атака, появится красное сообщение. – Tom