Как настроить одну конфигурацию 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. Любые ссылки, которые показывают стандартную настройку, были бы более чем приветствуются!
решение1
Перезапустите Apache, не перезагружайте. Недавно настроенные SSL-сертификаты не загружаются при перезагрузке.
Откажитесь от NameVirtualHost ...:443
директив; они вам понадобятся только в том случае, если вы используете SNI.
И да, сохраните NameVirtualHost 1.1.1.1:80
директиву, она нужна вашим хостам с портом 80 для маршрутизации запросов на основе заголовка хоста.