Page 1 of 1
HTTPS берет другой сайт
Posted: Sat May 07, 2016 5:45 pm
by bkr
Привет и спасибо за хорошую панель. Столкнулся с проблемой: добавил сайт, включил у него SSL, добавил валидный сертификат, все как надо.
Но в поиске выходят домены от другого сайта. И еще если заходить на другие домены, у которых нет SSL, то они выводят один сайт (другой, который расположен на этом же сервере)
я нашел похожую проблему, но не вижу решения.
viewtopic.php?t=9091
Кто сталкивался и как решить, подскажите плиз.
Re: HTTPS берет другой сайт
Posted: Sun May 08, 2016 4:33 pm
by Mr.Erbutw
bkr wrote: Но в поиске выходят домены от другого сайта.
а зачем вы в поиске ищите, О_о свой сайт.
И еще если заходить на другие домены, у которых нет SSL, то они выводят один сайт (другой, который расположен на этом же сервере)
- Кто они, и куда выводят ?
можно пересоздать web , а логи что нибудь пишут ?
Re: HTTPS берет другой сайт
Posted: Tue May 10, 2016 11:13 am
by nabbe
В веб панели у вас должен быть подключен дефолтный пустой юзер (обычно admin) с доменом, который является именем сервера или его ptr. Больше у этого пользователя не должно быть сайтов. У него сгенерируйте ssl сертификат через веб панель. Проверьте, чтобы этот домен корректно открывался по https. После этого зайдите сюда:
Code: Select all
sudo nano /etc/httpd/conf.d/vesta.conf
там вы увидите примерно следующее:
Code: Select all
include /home/admin/conf/web/httpd.conf
Include /home/user/conf/web/httpd.conf
Include /home/user/conf/web/shttpd.conf
Include /home/admin/conf/web/shttpd.conf <-----
Как видно выше, shttp конфиг файл подключился последним, его нужно физически поднять, выше всех остальным shttpd конфигов, чтобы получилось вот так:
Code: Select all
include /home/admin/conf/web/httpd.conf
Include /home/user/conf/web/httpd.conf
Include /home/admin/conf/web/shttpd.conf <-----
Include /home/user/conf/web/shttpd.conf
Теперь если вы зайдете на сайт у которого нет ssl сертификата, то сервер отдаст первый в списке домен, тоесть нашу свежую заглушку. Далее нужно сделать 301 редирект на этой заглушке, чтобы автоматом возвращало на http домен, и не было зеркал.
Для этого создаем .htaccess файл в корне со следующим содержанием
Code: Select all
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Re: HTTPS берет другой сайт
Posted: Tue May 10, 2016 1:32 pm
by skurudo
Я бы предложил такой вариант.
Редактируем /etc/nginx/conf.d/your-ip.conf
Code: Select all
server {
listen your-ip:80 default;
server_name _;
access_log /dev/null;
error_log /dev/null;
return 444;
}
server {
listen your-ip:443;
server_name _;
ssl on;
ssl_certificate /home/admin/conf/web/ssl.your-domain.ru.pem;
ssl_certificate_key /home/admin/conf/web/ssl.your-domain.ru.key;
access_log /dev/null;
error_log /dev/null;
return 444;
}
Re: HTTPS берет другой сайт
Posted: Tue May 10, 2016 1:46 pm
by skurudo
bkr wrote:Привет и спасибо за хорошую панель. Столкнулся с проблемой: добавил сайт, включил у него SSL, добавил валидный сертификат, все как надо.Но в поиске выходят домены от другого сайта. И еще если заходить на другие домены, у которых нет SSL, то они выводят один сайт (другой, который расположен на этом же сервере)
Дело в том, что у вас все домены висят на одном IP-адресе и одном порту, отсюда и такие сложности.
Решать стоит на уровне nginx, как мне думается.
Re: HTTPS берет другой сайт
Posted: Fri May 20, 2016 12:30 pm
by shpion4ik
nabbe wrote:В веб панели у вас должен быть подключен дефолтный пустой юзер (обычно admin) с доменом, который является именем сервера или его ptr. Больше у этого пользователя не должно быть сайтов. У него сгенерируйте ssl сертификат через веб панель. Проверьте, чтобы этот домен корректно открывался по https. После этого зайдите сюда:
Code: Select all
sudo nano /etc/httpd/conf.d/vesta.conf
там вы увидите примерно следующее:
Code: Select all
include /home/admin/conf/web/httpd.conf
Include /home/user/conf/web/httpd.conf
Include /home/user/conf/web/shttpd.conf
Include /home/admin/conf/web/shttpd.conf <-----
Как видно выше, shttp конфиг файл подключился последним, его нужно физически поднять, выше всех остальным shttpd конфигов, чтобы получилось вот так:
Code: Select all
include /home/admin/conf/web/httpd.conf
Include /home/user/conf/web/httpd.conf
Include /home/admin/conf/web/shttpd.conf <-----
Include /home/user/conf/web/shttpd.conf
Теперь если вы зайдете на сайт у которого нет ssl сертификата, то сервер отдаст первый в списке домен, тоесть нашу свежую заглушку. Далее нужно сделать 301 редирект на этой заглушке, чтобы автоматом возвращало на http домен, и не было зеркал.
Для этого создаем .htaccess файл в корне со следующим содержанием
Code: Select all
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Спасибо! твое решение сработало!
Re: HTTPS берет другой сайт
Posted: Fri May 20, 2016 12:43 pm
by skurudo
Ок, тогда закрываем как решенное.