Page 2 of 3
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 10:36 am
by Deeryo
Привет, думаю самый простой выход будет в том SSL сайте, который открывается вместо нужных сайтов, или вообще во всех SSL сайтах добавить вот такие строки в .htaccess:
Code: Select all
<IfModule rewrite_module>
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !mydomain\.com$
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
(Вместо mydomain.com нужно вписать свой домен сайта)
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 11:50 am
by skurudo
Deeryo wrote:Привет, думаю самый простой выход будет в том SSL сайте, который открывается вместо нужных сайтов, или вообще во всех SSL сайтах добавить вот такие строки в .htaccess:
(Вместо mydomain.com нужно вписать свой домен сайта)
Пардон, а код проверяли? А то какой-то он не очень рабочий )
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 12:14 pm
by Deeryo
Да проверил, работает =) Может конкретному сайту не хватет "RewriteEngine On", это зависит от сайта, два раза "RewriteEngine On" пихать в htaccess не стоит.
Логика вообще-то простая, редирект на http делается в случае https и если имя сайта не то, что ожидается.
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 12:43 pm
by skurudo
Deeryo wrote:Да проверил, работает =) Может конкретному сайту не хватет "RewriteEngine On", это зависит от сайта, два раза "RewriteEngine On" пихать в htaccess не стоит.
Да, логика понятная :)
Про реврайт энжин я совсем забыл - отличное решение!
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 1:11 pm
by skurudo
Deeryo wrote:Логика вообще-то простая, редирект на http делается в случае https и если имя сайта не то, что ожидается.
Переписал и для nginx, работает :)
Code: Select all
if ($host !~* "domain.ru") {
rewrite ^ http://$host$request_uri permanent;
}
/home/admin/conf/web/snginx.conf
(ну или в том конфиге где первый оборотень с ссл)
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 1:48 pm
by Deeryo
Классно, можно подумать даже о шаблоне nginx для ssl
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 2:18 pm
by skurudo
Deeryo wrote:Классно, можно подумать даже о шаблоне nginx для ssl
Ну вообще-то я как бы уже :)
С указанными твиками тестирование сертификата startssl спокойно дает А+
....
/usr/local/vesta/data/templates/web/nginx/hosting.stpl
(ну и другие stpl можно поменять)
Code: Select all
server {
listen %ip%:%proxy_ssl_port% ssl spdy;
server_name %domain_idn% %alias_idn%;
ssl on;
ssl_certificate %ssl_pem%;
ssl_certificate_key %ssl_key%;
resolver 127.0.0.1;
ssl_stapling on;
ssl_session_timeout 24h;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000;";
add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";
error_log /var/log/%web_system%/domains/%domain%.error.log error;
location / {
proxy_pass https://%ip%:%web_ssl_port%;
location ~* ^.+\.(%proxy_extentions%)$ {
root %sdocroot%;
access_log /var/log/%web_system%/domains/%domain%.log combined;
access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
location /error/ {
alias %home%/%user%/web/%domain%/document_errors/;
}
location @fallback {
proxy_pass https://%ip%:%web_ssl_port%;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
disable_symlinks if_not_owner from=%docroot%;
include %home%/%user%/conf/web/snginx.%domain%.conf*;
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 3:35 pm
by Deeryo
В примере еще не видно редиректа. Кстати, а нам действительно нужно делать proxy_pass на https
proxy_pass https://%ip%:%web_ssl_port%;
или достаточно на http
proxy_pass http://%ip%:%web_port%;
Re: Перепутанные SSL домены
Posted: Mon Mar 23, 2015 4:22 pm
by skurudo
Deeryo wrote:В примере еще не видно редиректа. Кстати, а нам действительно нужно делать proxy_pass на https
Все есть, смотрите прокруткой :)
Основная находка - это все-таки опции ssl
Re: Перепутанные SSL домены
Posted: Tue Mar 24, 2015 1:29 pm
by yorm
skurudo wrote:Deeryo уже писал по этому поводу:
viewtopic.php?f=29&t=6663#p19736 Тоже самое было и в ISP. А чтобы понимать, что сейчас сделано - нужно не гадать, а конфиги, которые трогались показывать или же откатить изменения и начать заново.
Те же конфиги, что уже дважды в теме выше этой цитаты.
Так как с конфигами не помогло, откатил и начал заново. Если делать как здесь:
viewtopic.php?f=29&t=6663#p19736 — это не помогло сначала. Прикрутил к дефолтному домену SSL, указал сертификаты, Веста их успешно съела. Ничего не меняется, везде по https открывается не тот сайт, который нужно, а к которому первому включал SSL. Даже не дефолтный домен. Может быть дефолтный домен стоит первым в каком-то конфиге http, а есть отдельный конфиг с отдельным порядком сайтов на https? Когда стал проверять эту идею, оказалось, что действительно в /etc/httpd/conf.d/vesta.conf, /etc/nginx/conf.d/vesta.conf порядок нужно проверять дважды для httpd.conf и shttpd. Теперь .htaccess срабатывает.
Проблема теперь только в том, что сервер сначала выдает ошибку о несоответствии сертификата, а уже затем перенаправляет с https на http. Но здесь даже не знаю, возможно ли это вообще исправить, не получая сертификаты на все домены.