#ssl #nginx #url-rewriting
#ssl #nginx #url-перезапись
Вопрос:
Я знаю, что этот вопрос обсуждался много раз, но последние несколько часов я провел без какого-либо успеха. У меня есть поддомен, который перенаправляет любой www на none www, и я хочу, чтобы он также перенаправлял любой https на http.
вот мой виртуальный хостинг nginx:
server {
listen 80;
server_name www.stat.domain;
return 301 http://stat.domain;
}
server {
listen 80;
root /home/www/public/;
index index.php index.html index.htm;
server_name stat.domain.net;
location / {
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(. .php)(/. )$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Я до сих пор не знаю, почему кто-то может вручную изменить URL-адрес, скажем, с http на https в браузере. разве это не должно быть запрещено, особенно если на сайте нет SSL?
есть идеи, как принудительно преобразовать https в http?
Ответ №1:
Я до сих пор не знаю, почему кто-то может вручную изменить URL-адрес, скажем, с http на https в браузере. разве это не должно быть запрещено, особенно если на сайте нет SSL?
Из этого предложения я понимаю, что на вашем сайте нет или нет надлежащего SSL. В этом случае
- Как браузер должен узнать, что SSL отсутствует, прежде чем пытаться получить к нему доступ? И даже тогда, как он должен знать, что это постоянная и преднамеренная ошибка, чтобы любые повторные попытки не сработали? И если браузер не знает, как он должен запретить пользователю вводить https-URL?
- И если у вас нет https, то как вы будете перенаправлять с него? Для перенаправления требуется соединение, в котором оно может выдавать перенаправление, поэтому отсутствие SSL на вашем сайте означает отсутствие https-соединения и, следовательно, отсутствие перенаправления с https-соединения.
Комментарии:
1. @Digitalsite: если ваш поддомен находится на том же IP-адресе, что и домен, там тоже будет SSL, но с неправильным сертификатом. Обойти это невозможно, например. либо вы прослушиваете IP: https, либо нет. Вы можете либо переместить свой поддомен на другой IP, где никто не использует SSL, либо получить сертификат для поддомена (или подстановочный знак).
2. Спасибо @Steffen за полезный ответ. Я подумаю об этом в любом случае, как вы предложили. Хорошего дня!!