Ответы:
Я думаю, что это хорошая идея, как объяснить, в чем проблема на самом деле с виртуальными хостами и SSL / TLS.
Когда вы подключаетесь к серверу Apache через HTTP, вы отправляете набор заголовков http. Они выглядят так:
GET /index.html HTTP/1.1
Host: www.nice-puppies.com
Если у вас есть виртуальный хостинг, Apache будет просматривать поле хостов, а затем выбрать подходящий файл index.html. Проблема в том, когда вы добавляете SSL / TLS. Сервер устанавливает шифрование еще до того, как вы отправите свой http-запрос. Поэтому сервер не знает, заходите ли вы на www.nice-puppies.com или www.evil-haxxor.com, пока не завершите аутентификацию / шифрование. Сервер не может угадать (так как отправка неправильного сертификата выдает неприятное сообщение об ошибке).
Одним из решений является подстановочный сертификат (как упомянуто выше), который действителен для * .nice-puppies.com. Таким образом, вы можете использовать один и тот же сертификат для нескольких доменов, но у вас не может быть сертификата * .com (хорошо, вы можете, но это будет очень плохо для всех остальных), поэтому в общем случае вам понадобится отдельный IP для каждого домена. Домен HTTPS.
Реальное решение этой проблемы - «Индикация имени сервера»:
http://en.wikipedia.org/wiki/Server_Name_Indication
Он только начинает распространяться на серверы и веб-клиенты, поэтому сейчас это не совсем то, что вы можете использовать, но, надеюсь, через несколько лет это не будет такой большой проблемой.
Проблема в том, что сертификат SSL привязан к IP-адресу, а не к имени хоста. Когда соединение приходит по IP-адресу для запроса HTTPS, первым действием является установление связи SSL путем передачи сертификата сервера и / или сертификата клиента. На этом этапе установления соединения сервер Apache не может узнать, для чего предназначен запрос. Это отличается для HTTP (не-SSL) трафика, так как после того, как соединение установлено, сервер Apache может определить конфигурацию виртуального хоста для использования, если клиент отправляет Host
заголовок, или он передает его на первый настроенный виртуальный хост.
Если у вас было несколько виртуальных хостов в одном домене, вы можете настроить один сертификат подстановки на IP-адресе и иметь несколько виртуальных хостов с разными именами серверов; однако, если эти имена серверов не находятся под одним и тем же доменным именем, они будут генерировать ошибки клиентского сервера. Это будет работать, так как подстановочный сертификат будет действителен для всех имен хостов под этим доменным именем. Вам понадобится другой IP-адрес, если доменные имена будут другими, так как первый сертификат, определенный для этого IP-адреса, будет представлен для подключения клиентов.
Это может быть добавлено в один сертификат ssl как SAN (Subject Alternative Name). В моем опыте я должен был запросить сертификат организации SLL. я использовал globalsign.
Фактически, с помощью современного программного обеспечения вы МОЖЕТЕ обслуживать несколько сайтов HTTPS по одному IP-адресу, используя новую функцию под названием «SNI - индикация имени сервера».
http://en.wikipedia.org/wiki/Server_Name_Indication
http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
Я еще не использовал это сам, но это звучит хорошо для внутренних и интранет-сайтов. Большинство современных браузеров поддерживают SNI. IE6 не поддерживает SNI, но IE7 поддерживает.
(Исправление: 20100426 - SNI вообще не поддерживается в Windows XP. Windows Vista и выше поддерживают SNI. См. «Раздел 2.2.3» по адресу http://msdn.microsoft.com/en-us/library/dd208005% 28v = PROT.13% 29.aspx # id8 ).
Я думаю, что ОП спрашивает, что произойдет, если он добавит сертификат SSL к IP, который имеет много виртуальных хостов. Если ни один из других виртуальных хостов не использует сертификат SSL, он должен быть в открытом виде.
Сертификат UC - это, безусловно, путь: http://www.sslshopper.com/unified-communications-uc-ssl-certificates.html
Если вы попытаетесь добавить два сертификата на один и тот же IP-адрес, везде будет использоваться только первый прочитанный сертификат. Один IP - один сертификат SSL.
Если вы хотите получить больше SSL-сертификатов на одном и том же IP- адресе , рассмотрите возможность получения многодоменного (так называемого UCC - проверьте его @ godaddy ) или группового (более дорогого) сертификата.