HTTPS берет другой сайт
HTTPS берет другой сайт
Привет и спасибо за хорошую панель. Столкнулся с проблемой: добавил сайт, включил у него SSL, добавил валидный сертификат, все как надо.
Но в поиске выходят домены от другого сайта. И еще если заходить на другие домены, у которых нет SSL, то они выводят один сайт (другой, который расположен на этом же сервере)
я нашел похожую проблему, но не вижу решения.
viewtopic.php?t=9091
Кто сталкивался и как решить, подскажите плиз.
Но в поиске выходят домены от другого сайта. И еще если заходить на другие домены, у которых нет SSL, то они выводят один сайт (другой, который расположен на этом же сервере)
я нашел похожую проблему, но не вижу решения.
viewtopic.php?t=9091
Кто сталкивался и как решить, подскажите плиз.
Re: HTTPS берет другой сайт
а зачем вы в поиске ищите, О_о свой сайт.bkr wrote: Но в поиске выходят домены от другого сайта.
- Кто они, и куда выводят ?И еще если заходить на другие домены, у которых нет SSL, то они выводят один сайт (другой, который расположен на этом же сервере)
я нашел похожую проблему, но не вижу решения.
viewtopic.php?t=9091
можно пересоздать web , а логи что нибудь пишут ?
Re: HTTPS берет другой сайт
В веб панели у вас должен быть подключен дефолтный пустой юзер (обычно admin) с доменом, который является именем сервера или его ptr. Больше у этого пользователя не должно быть сайтов. У него сгенерируйте ssl сертификат через веб панель. Проверьте, чтобы этот домен корректно открывался по https. После этого зайдите сюда:
там вы увидите примерно следующее:
Как видно выше, shttp конфиг файл подключился последним, его нужно физически поднять, выше всех остальным shttpd конфигов, чтобы получилось вот так:
Теперь если вы зайдете на сайт у которого нет ssl сертификата, то сервер отдаст первый в списке домен, тоесть нашу свежую заглушку. Далее нужно сделать 301 редирект на этой заглушке, чтобы автоматом возвращало на http домен, и не было зеркал.
Для этого создаем .htaccess файл в корне со следующим содержанием
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 <-----
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
Для этого создаем .htaccess файл в корне со следующим содержанием
Code: Select all
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Re: HTTPS берет другой сайт
Я бы предложил такой вариант.
Редактируем /etc/nginx/conf.d/your-ip.conf
Редактируем /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 берет другой сайт
Дело в том, что у вас все домены висят на одном IP-адресе и одном порту, отсюда и такие сложности.bkr wrote:Привет и спасибо за хорошую панель. Столкнулся с проблемой: добавил сайт, включил у него SSL, добавил валидный сертификат, все как надо.Но в поиске выходят домены от другого сайта. И еще если заходить на другие домены, у которых нет SSL, то они выводят один сайт (другой, который расположен на этом же сервере)
Решать стоит на уровне nginx, как мне думается.
Re: HTTPS берет другой сайт
Спасибо! твое решение сработало!nabbe wrote:В веб панели у вас должен быть подключен дефолтный пустой юзер (обычно admin) с доменом, который является именем сервера или его ptr. Больше у этого пользователя не должно быть сайтов. У него сгенерируйте ssl сертификат через веб панель. Проверьте, чтобы этот домен корректно открывался по https. После этого зайдите сюда:
там вы увидите примерно следующее:Code: Select all
sudo nano /etc/httpd/conf.d/vesta.conf
Как видно выше, shttp конфиг файл подключился последним, его нужно физически поднять, выше всех остальным shttpd конфигов, чтобы получилось вот так: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 <-----
Теперь если вы зайдете на сайт у которого нет ssl сертификата, то сервер отдаст первый в списке домен, тоесть нашу свежую заглушку. Далее нужно сделать 301 редирект на этой заглушке, чтобы автоматом возвращало на http домен, и не было зеркал.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
Для этого создаем .htaccess файл в корне со следующим содержаниемCode: Select all
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Re: HTTPS берет другой сайт
Ок, тогда закрываем как решенное.