Мне нужно разместить несколько виртуальных хостов 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>
Я использовал это ссылка на сайт как ресурс.