1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

mod_ssl на виртуальном сервере

Тема в разделе "Интернет", создана пользователем Облом, 27.12.02.

  1. Облом

    Облом Участник

    441
    0
    Вопрос, так сазать, возник. Пытаюсь прикрутить на машине mod_ssl и обССЛить один виртуальный хост.

    Грубо говоря, есть машина с одним IPшником, на нее установлен Апач 1.3.27 русский (перекодирует по портам), OpenSSL последний и mod_ssl (DSO).

    Я беру, как нормальный монгол, получившийся после инсталляции httpd.conf.default и правлю его. В итоге из
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    <VirtualHost _default_:443>
    DocumentRoot "/usr/local/apache/default"
    ServerName default.hostname

    SSLEngine on
    ...
    </VirtualHost>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    получаем
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    NameVirtualHost *
    <VirtualHost *>
    DocumentRoot "/web/sites"
    ServerName secure.host.ru

    SSLEngine on
    ...
    </VirtualHost>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    И не работает. Игры с openssl показали, что на localhost он слушает, а на реальном IP -- нет. Что не так я делаю? Где приложить умелые ручки?

    А httpd.conf.default работает нормально. То есть, проблема где-то в области виртуальных хостов.

    P.S. FreeBSD 4.6.1, Apache1.3.27rusPL30.16, OpenSSL-0.9.6h (ставил, вроде, из портов, но, может и вручную, не знаю даже), mod_ssl-2.8.12-1.3.27, ставил ручками.

    OpenSSL работает нормально, что доказывается нормальной работой pop3d-ssl, imap-ssl и подобных штучек-дрючек.
     
  2. Гость

    Гость Гость

    rtfm. ssl и name based virtual host несовместимы.
     
  3. Облом

    Облом Участник

    441
    0
    Когда читал FM, не обнаружил. Я ж говорил -- монгол! Я обходные путя решения проблемы есть? Apache-SSL не спасет в данном случае?
     
  4. Гость

    Гость Гость

    mod_ssl faq:

    Why can't I use SSL with name-based/non-IP-based virtual hosts? [L]
    The reason is very technical. Actually it's some sort of a chicken and egg problem: The SSL protocol layer stays below the HTTP protocol layer and encapsulates HTTP. When an SSL connection (HTTPS) is established Apache/mod_ssl has to negotiate the SSL protocol parameters with the client. For this mod_ssl has to consult the configuration of the virtual server (for instance it has to look for the cipher suite, the server certificate, etc.). But in order to dispatch to the correct virtual server Apache has to know the Host HTTP header field. For this the HTTP request header has to be read. This cannot be done before the SSL handshake is finished. But the information is already needed at the SSL handshake phase. Bingo!