URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8029
[ Назад ]

Исходное сообщение
"Отключение ssl для url'a"

Отправлено fire002 , 19-Апр-16 18:45 
Приветствую.
Требуется для некой страницы сайта отключить ssl (https), но есть проблемы.
Сайт поддерживается и по http и по https, но если зайти на https, браузер будет всегда редиректить на https, независимо от настроек сервера.
Обычный rewrite не работает, цикл.
Более того, если отключить ssl на сервере, браузер перестанет открывать сайт...
ps\\ nginx

Содержание

Сообщения в этом обсуждении
"Отключение ssl для url'a"
Отправлено skvernobot , 20-Апр-16 10:30 
> Приветствую.
> Требуется для некой страницы сайта отключить ssl (https), но есть проблемы.
> Сайт поддерживается и по http и по https, но если зайти на
> https, браузер будет всегда редиректить на https, независимо от настроек сервера.

Очень спорный вопрос... Отключить HSTS в nginx:
https://ru.wikipedia.org/wiki/HSTS

> Обычный rewrite не работает, цикл.

Думаю если выключить HSTS то цикла не будет.

> Более того, если отключить ssl на сервере, браузер перестанет открывать сайт...
> ps\\ nginx

Это логично.


"Отключение ssl для url'a"
Отправлено ALex_hha , 20-Апр-16 13:25 
> Думаю если выключить HSTS то цикла не будет.

а с чего вы взяли, что ТС использует HSTS?


"Отключение ssl для url'a"
Отправлено skvernobot , 20-Апр-16 17:44 
>> Думаю если выключить HSTS то цикла не будет.
> а с чего вы взяли, что ТС использует HSTS?

Я могу только догадываться о смысле фразы "но если зайти на https, браузер будет всегда редиректить на https, независимо от настроек сервера."

Добрый день. Мне думается что ТС таким образом интерпретирует поведение HSTS.


"Отключение ssl для url'a"
Отправлено eRIC , 20-Апр-16 13:44 
где конфиг nginx'а? все зависит как вы настроили 80 и 443 в nginx.

"Отключение ssl для url'a"
Отправлено fire002 , 21-Апр-16 02:31 
> где конфиг nginx'а? все зависит как вы настроили 80 и 443 в
> nginx.

Там и 80 и 443, т.е работает и по http и по https
Редирект на https -- реалии современных браузеров.
Отключать в браузере что-то каждому посетителю не выход.


"Отключение ssl для url'a"
Отправлено eRIC , 21-Апр-16 07:44 
> Там и 80 и 443, т.е работает и по http и по
> https
> Редирект на https -- реалии современных браузеров.
> Отключать в браузере что-то каждому посетителю не выход.

ясень пень, конфиг nginx нужен был, чтобы посмотреть какие блоки сервера определены и как идет перенаправление с блока 80 на 443(тупое перенаправление или селективное)

покурите на досуге http://serverfault.com/questions/270339/nginx-force-ssl-on-o...



"Отключение ssl для url'a"
Отправлено девелопер , 21-Апр-16 09:51 
> Приветствую.
> Требуется для некой страницы сайта отключить ssl (https), но есть проблемы.
> Сайт поддерживается и по http и по https, но если зайти на
> https, браузер будет всегда редиректить на https, независимо от настроек сервера.
> Обычный rewrite не работает, цикл.
> Более того, если отключить ssl на сервере, браузер перестанет открывать сайт...
> ps\\ nginx

я поступил следующим образом, подняс свой


"Отключение ssl для url'a"
Отправлено девелопер , 21-Апр-16 09:52 
> Приветствую.
> Требуется для некой страницы сайта отключить ssl (https), но есть проблемы.
> Сайт поддерживается и по http и по https, но если зайти на
> https, браузер будет всегда редиректить на https, независимо от настроек сервера.
> Обычный rewrite не работает, цикл.
> Более того, если отключить ssl на сервере, браузер перестанет открывать сайт...
> ps\\ nginx

сорри за то что выше
я поступил следующим образом, поднял свой httpd proxy, виртуальный домен локульный и все запросы редиректит удаленно на https


"Отключение ssl для url'a"
Отправлено ALex_hha , 22-Апр-16 10:58 
> Там и 80 и 443, т.е работает и по http и по https
> Редирект на https -- реалии современных браузеров.

ты конфиг то покажи, чтобы мы не гадали



"Отключение ssl для url'a"
Отправлено eRIC , 22-Апр-16 14:21 
> сорри за то что выше
> я поступил следующим образом, поднял свой httpd proxy, виртуальный домен локульный и
> все запросы редиректит удаленно на https

:) нихт андерстейн solution энзе question



"Отключение ssl для url'a"
Отправлено fire002 , 25-Апр-16 01:00 
                server_name xxx.ru xxx.ru www.xxx.ru;
                listen xx.xx.xx.17;
                listen          443 ssl;
                ssl_certificate      /etc/nginx/ssl/xxx_ru.crt;
                ssl_certificate_key  /etc/nginx/ssl/xxx.key;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                testcookie on;
                if ($http_user_agent ~ "^$") {
                        return 403;
                }
                if ($http_user_agent ~* "WordPress") {
                        return 403;
                }
                location / {
                        limit_req zone=lphp burst=10;
                        proxy_pass http://xx.xx.xxx.xxx:80;
                        proxy_read_timeout 60;
                        proxy_set_header Host $http_host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Real-IP $remote_addr;
                        #proxy_set_header realip $remote_addr;
                }

Если делать отдельный location или rewrite для нужной линки, браузер уходит в цикл.
Если на браузере при этом установить нечто вроде force tsl и выключить принудительный редирект на https, то все ок. и по http и по https все ходит. Но каждому посетителю браузер так настраивать не будешь.


"Отключение ssl для url'a"
Отправлено ALex_hha , 25-Апр-16 13:33 
> Сайт поддерживается и по http и по https

А где http версия?


"Отключение ssl для url'a"
Отправлено eRIC , 26-Апр-16 06:22 
>> Сайт поддерживается и по http и по https
> А где http версия?

у него где-то в облаках :) и все тут же  listen xx.xx.xx.17;
как писал ранее где нужно было покурить, вам нужно проверять по какому протоколу пришел к вам пользователь на ресурс и там уже решать, переводить/отключать https:

location /user {
    if ($scheme = 'https') {
      rewrite ^ http://$http_host$request_uri? permanent;
    }
  }