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

Именованные виртуальные хосты + HTTPS не должны работать?

Апач документация httpd говорит, что виртуальные хосты на основе имен не работают с SSL. Но наши сайты работают именно в такой конфигурации!

В site1.conf у нас есть

<VirtualHost *:443>
    ServerName                  site1:443
    DocumentRoot                /var/www/site1
    ErrorLog                    /var/log/apache2/site1.error.log
    TransferLog                 /var/log/apache2/site1.access.log

    SSLEngine                   on
    SSLCipherSuite              ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
    SSLCertificateFile          /etc/apache2/keys/trac.crt
    SSLCertificateKeyFile       /etc/apache2/keys/trac.key
    SetEnvIf                    User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
...
</VirtualHost>

Другой сайт почти идентичен, но с site2 вместо site1. Насколько я могу судить, нам либо очень повезло, либо я не понимаю документацию. Два URL-адреса работают, и они обслуживают разный контент через HTTPS.

Может кто-нибудь пролить свет?

Более свежие версии поддержки apache Индикация имени сервера (SNI), что позволяет использовать виртуальный хостинг HTTPS на основе имен. Для работы SNI программное обеспечение клиентского браузера должно поддерживать SNI, но, к сожалению, не все браузеры (особенно Internet Explorer в WinXP).

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

Если вы используете самозаверяющие сертификаты, то это обычно спорный вопрос, потому что клиенту все равно будет предложено об этом.

ВОЗМОЖНО обслуживать несколько защищенных NameVirtualHosts с одного и того же сервера apache, либо предоставляя им отдельные IP-адреса, либо используя групповой сертификат, когда они совместно используют домены.