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

Apache SSL VirtualHosts на одном IP с использованием сертификата UCC / SAN

Мне нужно разместить несколько виртуальных хостов Apache с SSL с одного IP-адреса.

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

Я получил сертификат унифицированной связи (UCC), также известный как сертификат альтернативного имени субъекта (SAN). Это позволяет мне использовать один и тот же сертификат для нескольких доменов.

Я бы хотел, чтобы это был сертификат, обслуживаемый Apache для любой Запрос SSL - а затем пусть Apache разрешит виртуальный хост как обычно, как только будет установлено шифрование.

Как мне настроить Apache для этого? Я попытался выяснить, как это можно сделать, но все, что я смог найти, это цитаты, в которых говорится, что это возможно, но без конкретики:


wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

Хотя Apache может повторно согласовать SSL-соединение позже, увидев имя хоста в запросе (и делает это), слишком поздно выбирать правильный сертификат сервера для использования в соответствии с именем хоста запроса во время первоначального рукопожатия, что приводит к предупреждениям / ошибкам браузера о сертификатах, имеющих неправильное имя хоста в них.

serverfault.com/questions/48334/apache-virtual-hosts-with-ssl

Кстати, на одном IP-адресе можно иметь несколько защищенных SSL именованных виртуальных хостов - я делаю это на своем веб-сайте, - но это создает всевозможные предупреждения в журналах Apache и предупреждения о сертификатах в браузере. Я бы определенно не рекомендовал его для производственного сайта, который должен выглядеть чистым. -Дэвид 31 июл в 4:58

www.digicert.com/subject-alternative-name.htm

Виртуальный хост Несколько сайтов SSL на одном IP-адресе. Для размещения нескольких сайтов с поддержкой SSL на одном сервере обычно требуется уникальный IP-адрес для каждого сайта, но сертификат с альтернативными именами субъектов может решить эту проблему. Microsoft IIS 6 и Apache могут подключаться к HTTPS-сайтам виртуального хоста с использованием SSL для унифицированных коммуникаций, также известного как сертификаты SAN.


Пожалуйста помоги.

Я тестировал это на своем экземпляре apache 2.2.14, и он работал нормально:

Используйте директиву NameVirtualHost (в ports.conf):

NameVirtualHost *:443

определите свои vhosts:

<VirtualHost *:443>
  ServerName www.siteA.com
  DocumentRoot "/opt/apache22/htdocs/siteA"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>
<VirtualHost *:443>
  ServerName www.siteB.com
  DocumentRoot "/opt/apache22/htdocs/siteB"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>

Я использовал это ссылка на сайт как ресурс.