Как настроить одну конфигурацию Apache2 для размещения нескольких сайтов HTTPS, каждый на своем IP-адресе? Также будет несколько HTTP-сайтов на одном IP-адресе.
Я не хочу использовать Индикация имени сервера (SNI) как описано Вот, и меня интересуют только важные директивы Apache верхнего уровня. То есть мне просто нужно знать скелет того, как должен выглядеть мой конфиг.
Базовая настройка выглядит так:
Hosted on 1.1.1.1:80 (HTTP)
- example.com
- example.net
- example.org
Hosted on 2.2.2.2:443 (HTTPS)
- secure.com
Hosted on 3.3.3.3:443 (HTTPS)
- secure.net
Hosted on 4.4.4.4:443 (HTTPS)
- secure.org
И вот важные директивы конфигурации, которые у меня есть, это самая близкая к рабочей итерации, которую я подошел, но все еще нет кубика. Я знаю, что близок, просто нужен небольшой толчок в правильном направлении.
Listen 1.1.1.1:80
Listen 2.2.2.2:443
Listen 3.3.3.3:443
Listen 4.4.4.4:443
NameVirtualHost 1.1.1.1:80
NameVirtualHost 2.2.2.2:443
NameVirtualHost 3.3.3.3:443
NameVirtualHost 4.4.4.4:443
# HTTP VIRTUAL HOSTS:
<VirtualHost 1.1.1.1:80>
ServerName example.com
DocumentRoot /home/foo/example.com
</VirtualHost>
<VirtualHost 1.1.1.1:80>
ServerName example.net
DocumentRoot /home/foo/example.net
</VirtualHost>
<VirtualHost 1.1.1.1:80>
ServerName example.org
DocumentRoot /home/foo/example.org
</VirtualHost>
# HTTPS VIRTUAL HOSTS:
<VirtualHost 2.2.2.2:443>
ServerName secure.com
DocumentRoot /home/foo/secure.com
SSLEngine on
SSLCertificateFile /home/foo/ssl/secure.com.crt
SSLCertificateKeyFile /home/foo/ssl/secure.com.key
SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>
<VirtualHost 3.3.3.3:443>
ServerName secure.net
DocumentRoot /home/foo/secure.net
SSLEngine on
SSLCertificateFile /home/foo/ssl/secure.net.crt
SSLCertificateKeyFile /home/foo/ssl/secure.net.key
SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>
<VirtualHost 4.4.4.4:443>
ServerName secure.org
DocumentRoot /home/foo/secure.org
SSLEngine on
SSLCertificateFile /home/foo/ssl/secure.org.crt
SSLCertificateKeyFile /home/foo/ssl/secure.org.key
SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>
Как бы то ни было, я предпочитаю иметь каждый из моих SSL-сайтов на собственном IP-адресе вместо того, чтобы включать один из них на основной IP-адрес VHOST. Любые ссылки, которые показывают стандартную настройку, будут более чем приветствоваться!
Перезагрузите Apache, не перезагружайте. Недавно настроенные сертификаты SSL не загружаются при перезагрузке.
Отбросьте NameVirtualHost ...:443
директивы; они бы вам понадобились, только если бы вы выполняли SNI.
И да, держи NameVirtualHost 1.1.1.1:80
директиве, вашим хостам с портом 80 это необходимо для маршрутизации запросов на основе заголовка хоста.