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

Как настроить несколько сайтов 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. Любые ссылки, которые показывают стандартную настройку, были бы более чем приветствуются!

решение1

Перезапустите Apache, не перезагружайте. Недавно настроенные SSL-сертификаты не загружаются при перезагрузке.

Откажитесь от NameVirtualHost ...:443директив; они вам понадобятся только в том случае, если вы используете SNI.

И да, сохраните NameVirtualHost 1.1.1.1:80директиву, она нужна вашим хостам с портом 80 для маршрутизации запросов на основе заголовка хоста.

Связанный контент