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

Apache2 перенаправляет весь HTTPS-трафик на одну страницу

У меня проблема с моим Apache2, я, вероятно, неправильно конфигурирую, но не понимаю, что именно.

Весь мой https-трафик всегда перенаправляется на одну страницу, я не могу добавлять разные https-страницы.

Это мой конфиг:

    <VirtualHost *:80>
            ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews ExecCGI
                AllowOverride All
                Order allow,deny
                allow from all
                AddHandler cgi-script .py
        </Directory>


        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>


  <VirtualHost *:80>
    DocumentRoot /var/www/www1/
    ServerName www1.lucas.myurl.be
    </VirtualHost>

  <VirtualHost *:80>
    DocumentRoot /var/www/www2/
    ServerName www2.lucas.myurl.be
    </VirtualHost>

<VirtualHost *:443>
    DocumentRoot /usr/share/roundcube/
    ServerName webmail.lucas.myurl.be
    SSLEngine on
    SSLCertificateFile PlaceOFMy1stCert
    SSLCertificateKeyFile PlaceOfMy1stKey
  </VirtualHost>

 <VirtualHost *:80>
   DocumentRoot /usr/share/roundcube/
    ServerName webmail.lucas.myurl.be
    Redirect / https://webmail.lucas.myurl.be/
</VirtualHost>

 <VirtualHost *:443>
    DocumentRoot /var/www
    ServerName secure.lucas.myurl.be
    SSLEngine on
    SSLCertificateFile My2ndCert
    SSLCertificateKeyFile My2ndKey
    </VirtualHost>


 <VirtualHost *:80>
    DocumentRoot /var/www
    ServerName secure.lucas.myurl.be
    Redirect / https://secure.lucas.myurl.be/
</VirtualHost>

Проблема в том, что я получаю предупреждение о перезаписи по умолчанию при перезапуске Apache2, но я не понимаю, откуда оно.

 [warn] _default_ VirtualHost overlap on port 443, the first has precedence
httpd not running, trying to start

Поэтому, когда я захожу на secure.lucas.myurl.be, он переходит на https://webmail.lucas.myurl.be, вместо того, чтобы идти https://secure.lucas.myurl.be

Итак, что мне нужно добавить в мою конфигурацию, чтобы она перенаправляла на правильную страницу SSL вместо перенаправления всего на первое перенаправление 443?

Похоже, что SNI не включен. Это объясняет, почему все они переходят на одну и ту же страницу. Если вы используете Debian Lenny или Debian Squeeze, я считаю, что это сработает.

Проверять, выписываться эта страница В нем описывается, как включить SNI на ваших хостах. Обратите внимание, что это используется с виртуальными хостами на основе имен. Судя по вашей конфигурации, вы используете именованные виртуальные хосты.

Вполне нормальный вопрос. У вас может быть только один сертификат SSL на каждый IP-адрес. Здесь у вас есть 2 блока SSL на всех интерфейсах, поэтому apache возьмет только первый.

Также возможно, что у вас все еще включен виртуальный хост SSL по умолчанию 2.

Проверьте, какие vhosts включены с помощью этой команды:

 apache2ctl -S

Это даст вам список.

У вас может быть несколько блоков SSL на 1 ip, но для всех блоков должен использоваться один и тот же сертификат.