Apache2 - Linux - Виртуальные хосты
Проблема в Apache, не могу понять почему так, установил сервер на Debian сделал виртутальные
хосты, включил их.
но вот беда, сайтов 4 шт. один из них работает на HTTPS протоколе, остальные нет.
И вот получается - браузеры автоматом открывают именно HTTPS и у меня по всем 4-м доменам грузится сайт тот что с HTTPS... виртуаль хост с SSL....
Как бороть эту проблему , чтобы Apache2 отрубал возможность доступа по другим именам к рабочему хосту....
Т.е. если нет, то и написать ошибка или дисконект..... (((
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/site1.ru_crt.crt
SSLCertificateChainFile /etc/ssl/site1.crt
SSLCertificateKeyFile /etc/ssl/site1.ru_key.key
SSLProtocol -all +TLSv1.3 +TLSv1.2
ServerAdmin stas@site1
ServerName site1
ServerAlias www.site1
DocumentRoot /home/www/site1
ErrorLog /home/www/site1_error.log
CustomLog /home/www/site1_access.log combined
<Directory /home/www/site1>
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AddHandler cgi-script .cgi .pl .pm .php
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin stas@site1
ServerName site1
ServerAlias www.site1
DocumentRoot /home/www/site1
ErrorLog /home/www/site1_error.log
CustomLog /home/www/site1_access.log combined
<Directory /home/www/site1>
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AddHandler cgi-script .cgi .pl .pm .php
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
другие такого содержания
<VirtualHost *:80>
ServerAdmin ssd@sss.ru
ServerName site2
ServerAlias www.site2
DocumentRoot /home/www/site2
ErrorLog /home/www/site2_error.log
CustomLog /home/www/site2_access.log combined
<Directory /home/www/site2>
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AddHandler cgi-script .cgi
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
у меня нет проблем с перебрасыванием, получается что у меня если вызвать сайт - сайт2, то открывается сайт1 (HTTPS) , вместо сайт2 (http), а нужно апачу сказать, чтобы так не делал, Если сервернейм другой
Вероятно, в каком-то их сайтов ты указал прямой IP вместо *, а такие сайты будут иметь приоритет, если IP сервера совпадает.
Также имей ввиду, если HTTPS используется только для части сайтов, то те сайты, на которых он не используется и не прописан в конфиге, не будут открываться по HTTPS никак, вместо этого будет открываться первый объявленный HTTPS-сайт.
Чтобы избавиться от подобной неопределённости, нужно привести все виртуальные хосты к унифицированному виду - в обоих использовать обе секции VirtualHost *:80 и VirtualHost *:443, и убедиться, что везде там стоят звёздочки вместо IP (чтобы хост с IP не взял над хостами со звёздочками приоритет). Если сертификаты для каких-то сайтов ещё не получил - пропиши там в конфиге на время левый самоподписанный для них, но чтобы хоть какие-нибудь обязательно были (иначе сервер не будет знать, чем именно ответить), и по возможности получи настоящие при помощи certbot или чего-то подобного.
Апач, дебиан, сейчас на секундочку 2021. Видимо тебе прийдется использовать mod_rewrite что бы тебе перебрасывать с https на http