2012-01-03 3 views
0

У меня есть 2 сайта, определенные в файле virtualhosts.conf, загруженном в конец httpd.conf.Apache - множественный SSL-выпуск

Они оба имеют формат:

<VirtualHost IP:80> 
    DocumentRoot D:/Site/A/ 
    ... 
</VirtualHost> 

<VirtualHost IP:443> 
    DocumentRoot D:/Site/A/ 
    ... 
</VirtualHost> 

<VirtualHost IP__2:80> 
    DocumentRoot D:/Site/B/ 
    ... 
</VirtualHost> 

<VirtualHost IP__2:443> 
    DocumentRoot D:/Site/B/ 
    ... 
</VirtualHost> 

Если я загружаю https://sitea.com, с выше конфигурации, он загружает только штрафом. Если я загружаю https://siteb.com с вышеуказанной конфигурацией, он разбивается, говоря, что siteb идентифицирует себя как sitea. Если я перевернуть порядок записей:

<VirtualHost IP__2:80> 
    DocumentRoot D:/Site/B/ 
    ... 
</VirtualHost> 

<VirtualHost IP__2:443> 
    DocumentRoot D:/Site/B/ 
    ... 
</VirtualHost> 

<VirtualHost IP:80> 
    DocumentRoot D:/Site/A/ 
    ... 
</VirtualHost> 

<VirtualHost IP:443> 
    DocumentRoot D:/Site/A/ 
    ... 
</VirtualHost> 

Теперь SITEB нагрузки просто отлично, но Sitea выдает ошибку, что она идентифицирующий себя как SITEB.

Что происходит? Кажется, что Apache по умолчанию использует «верхнюю» запись в файле, хотя оба они кажутся действительными для своих доменов, если они первыми.

EDIT: В верхней части моего httpd.conf:

Listen 80 
Listen 443 

NameVirtualHost IP.50:80 
NameVirtualHost IP.50:443 

NameVirtualHost IP.51:80 
NameVirtualHost IP.51:443 

NameVirtualHost IP.52:80 
NameVirtualHost IP.52:443 

NameVirtualHost IP.53:80 
NameVirtualHost IP.53:443 

NameVirtualHost IP.54:80 
NameVirtualHost IP.54:443 

NameVirtualHost IP.55:80 
NameVirtualHost IP.55:443 

NameVirtualHost IP.56:80 
NameVirtualHost IP.56:443 

ответ

1

SSL устанавливается заранее запроса HTTP и сервер не знает, чей сертификат присутствует, когда он получает запрос. Эта проблема не имеет общего решения, кроме специального IP для каждого защищенного домена. И BTW, ваш вопрос не соответствует теме StackOverflow.

+0

У нас, к сожалению, есть выделенный IP-адрес для каждого домена, я отредактирую свой вопрос и приведу пример. И жаль, что это немного не по теме. – Josh

+0

В любом из моих VirtualHosts не было ни одной записи ServerName, добавив те, которые были исправлены. Это разрешено, если мода хочет удалить это. – Josh

Смежные вопросы