Хорошо, у меня есть сервер Apache, настроенный со следующими директивами:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example1.com
ServerAlias www.example1.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName example2.com
ServerAlias *.example2.com
DocumentRoot /var/www/example2
</VirtualHost>
<VirtualHost example1.com:443>
DocumentRoot /var/www/html
ServerName example1.com:443
SSLEngine on
...
</VirtualHosts>
Таким образом, example1.com имеет поддержку SSL, и к нему можно получить доступ через http: // example1.com или https: // example1.com. Однако это имеет непреднамеренный побочный эффект - отображение https: // example1.com при посещении https: // example2.com в моем браузере. Я хочу как-то отключить https: // example2.com или перенаправить его на http: // example2.com, чтобы я не получал предупреждения и неправильный сайт при посещении.
Вы не сможете избежать предупреждения, если только example1 и example2 не находятся на разных IP-адресах или вы не получите сертификат SSL, охватывающий оба имени - страница с ошибкой или перенаправление не могут произойти до тех пор, пока не будет установлено SSL-соединение.
При этом должно сработать что-то в этом роде:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example1.com
SSLEngine on
#...
</VirtualHost>
<VirtualHost *:443>
ServerName example2.com
SSLEngine on
# same certificate config here as on example1, unless you're wanting to use TLS SNI
# then, let's redirect the user to non-SSL
Redirect permanent / http://example2.com/
</VirtualHost>
Для этого вам необходимо иметь указание имени сервера (SNI). Пожалуйста, обратитесь по ссылке: http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI для подробностей.
Я не думаю, что вам следует указывать: 443 на ServerName example1.com:443
это должно быть правильно настроить
<VirtualHost example1.com:443> //change example1.com to ip address is a good habit
DocumentRoot /var/www/html
ServerName example1.com
SSLEngine on
...
</VirtualHosts>