Apache - проблема нескольких SSL - PullRequest
0 голосов
/ 03 января 2012

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

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

<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 по умолчанию использует «top» запись в файле, хотя оба они кажутся действительными для своих доменов, если они первые.

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 Ответ

1 голос
/ 03 января 2012

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

...