Конфигурация Apache2 SSL — Apache всегда выбирает первый виртуальный хост на основе IP-адреса

Конфигурация Apache2 SSL — Apache всегда выбирает первый виртуальный хост на основе IP-адреса

У нас есть сервер Ubuntu 10.04, на котором запущен Apache 2.2.14 с 4 виртуальными хостами на основе IP. У нас есть 2 IP-адреса и сертификат ssl для каждого IP-адреса. Например:

<VirtualHost 1.1.1.1:80>
<VirtualHost 1.1.1.1:443> -> SSL 1

<VirtualHost 2.2.2.2:80>
<VirtualHost 2.2.2.2:4443> -> SSL 2

Независимо от того, что мы делаем, по какой-то причине Apache всегда будет находить первый виртуальный хост включенным, но не второй при обслуживании https-запросов. Это приводит к тому, что Apache обслуживает ssl-сертификат с первого включенного vhost для ОБОИХ IP-адресов. Крайне нежелательный результат.

Все конфигурации ip-адресов верны. Запуск apache2ctl -Sговорит, что все конфигурации верны.

Мы не используем виртуальные хосты на основе имен.

Неважно, какой виртуальный хост :443 включен первым, Apache будет обслуживать только сертификат из первого включенного виртуального хоста.

Мы понимаем, что Apache по умолчанию будет использовать первый найденный им виртуальный хост в качестве хоста по умолчанию, если не найдет виртуальный хост для IP-адреса:порта.

Почему это происходит?

решение1

Похоже, Apache2 требует ServerNameдирективу для всех <VirtualHost>s. Наши два SSL vhosts в конечном итоге имели одинаковые значения, ServerNameи один из них в конечном итоге стал бы значением по умолчанию для обоих IP-адресов.

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