SSL сертификат для одного сайта

R4z0R
На сайте с 09.03.2008
Offline
111
391

Есть сервер с несколькими сайтами, для одного прописал ssl:

SSLEngine on

SSLCertificateKeyFile /etc/httpd/conf/ssl.key/site.key
SSLCertificateFile /etc/httpd/conf/ssl.crt/cite.crt
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/root_site.crt
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/intermediate_site.crt

плюс редирект с http на https

и он прекрасно работает, НО!

Другие сайты при входе на них по https://othersite.ru перекидывают на страницу https://site.ru и как бы теперь сертификат этого сайта действует для всех сайтов сервера, не важно - есть у них свой сертификат или нет.

Как убрать эту хрень? Делал редирект с https на http на других сайтах - не помогает, все равно перекидывает на http версию сайта с ssl (http://site.ru)

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1

А где вы эти настройки то вписали? Надеюсь к конкретному сайту или вообще в общий конфиг?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#2

надо понимать саму суть как это работает.

раньше у вас был web-сервер на каком-то ip и 80 порту.

при обращении не по домену, а просто по ip:80 этот сервер должен что-то отдавать.

что именно - смотря что указано в "default" конфиге так сказать.

плюс дополнительно он может откликаться на этом же ip на разные домены (заголовок Host: в запросе) со своими конфигами соответственно.

т.е.:

site.ru

site2.ru

site3.ru

default

если host совпадает с каким-то servername из вашей кучки конфигов virtualhost'ов, то сервер отдает ответ из этого блока.

причем в порядке очередности как оно записано в конфиге(ах). если ничего не совпадает, то отдается то что в default.

потом вы подымаете еще и порт 443 для https.

там все то же самое и оно никак не связано с тем, что на 80'м

тот же ip, но порт 443.

в dns по домену отдается только ip, за порт речи не идет.

т.е. если у вас на 443'м так:

site.ru

default

то запрашивая https://site2.ru браузер по-сути обращается к https://ip:443, добавляя заголовок host: site2.ru

дальше ваш сервер проходит по списку конфигов и на 443 порту не находит никакого site2.ru, и логично выдает в ответ то, что в default.

у вас похоже https://site.ru добавлен сейчас как единственный хост, т.е. default.

ну так логично что если заходить на https://site2.ru сервер просто отдает все что у вас указано по сайту site.ru - его сертификат и содержимое. а в содержимом видимо есть проверка домена и редирект если не тот. вот и редиректит https://site2.ru -> https://site.ru

если заглянуть в логи, то все это наверняка видно.

короче.

если ip адрес есть лишь один и нет возможности разнести 80 и 443 по разным ip, то подняв на том же ip кроме 80го еще и 443й, вам нужно либо продублировать все домены, либо сделать default'ный с редиректом на http, а нужный https://site.ru как виртуальный хост сделать.

но надо понимать, что если не делать сертификаты для всех остальных доменов, то в любом случае браузер будет ругаться при заходе по https://site2.ru

т.е.:

1) красиво:

80: site.ru - редирект на https://site.ru

80: site2.ru - сайт2

80: site3.ru - сайт3

80: default - заглушка какая-нибудь

443: site.ru (с сертификатом) - сайт1

443: site2.ru (с сертификатом) - редирект на http://site2.ru

443: site.3ru (с сертификатом) - редирект на http://site3.ru

443: default (без сертификата) - заглушка

2) не очень красиво:

80: site.ru - редирект на https://site.ru

80: site2.ru - сайт2

80: site3.ru - сайт3

80: default - заглушка какая-нибудь

443: site.ru (с сертификатом) - сайт1

443: default (без сертификата) - редирект на тот же домен, но по http:// (браузер будет ругаться что нет сертификата запрашиваемого домена, но можно нажать "продолжить" и попасть по редиректу куда надо)

таким образом зайдя на https://site2.ru перебросит на правильную версию http://site2.ru

а у site.ru наоборот.

ну а еще красивей - не заниматься ерундой, а пользоваться shared хостингом, раз нет четкого понимания как правильно настроить вашу vps'ку :)

Andreyka
На сайте с 19.02.2005
Offline
822
#3
R4z0R:
Есть сервер с несколькими сайтами, для одного прописал ssl:
Как убрать эту хрень?

Ваш вопрос очень правильный и содержит в себе половину ответа. Полный ответ будет - прописать для каждого сайта свой ssl, тем более что это must have и бесплатно.

Не стоит плодить сущности без необходимости

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий