Назад | Перейти на главную страницу

Как настроить несколько сайтов Apache SSL с использованием нескольких IP-адресов

Как настроить одну конфигурацию 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 это необходимо для маршрутизации запросов на основе заголовка хоста.