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

Можно ли запустить Apache VirtualHost на порту 443 с отключенным SSL?

Я запускаю сайт полностью через SSL, используя балансировщик нагрузки перед Apache, выполняющий всю обработку и расшифровку сертификатов. Я пропускаю HTTP-трафик через балансировщик нагрузки, чтобы Apache мог обрабатывать перенаправления. Когда трафик перенаправляется на страницу HTTPS, балансировщик нагрузки выполняет расшифровку и перенаправляет запрос на любой порт, который я хочу.

http -> балансировщик нагрузки: 80 -> apache: 80 -> 301 url: 443

https -> балансировщик нагрузки: 443 - расшифрованный трафик -> apache: ЛЮБОЙ ПОРТ, КОТОРЫЙ Я ХОЧУ

Я могу использовать любой порт кроме 80 для всех моих vhosts, чтобы избежать цикла перенаправления (порт 444 отлично работает в конфигурации ниже), но для согласованности конфигураций Apache с непроизводственной средой я хотел бы знать, могу ли я использовать порт 443 для VirtualHosts, несмотря на то, что SSL фактически НЕ включен в Apache.

Я думал, что могу просто поставить SSLEngine off в <VirtualHost *:443> для принудительного использования этого порта без SSL, поскольку, поскольку порт SSL по умолчанию, Apache пытается включить SSL, но Apache не запускается с этой конфигурацией в Debian 6. (я закомментировал все в /etc/apache2/ports.conf кстати.)

[error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile]

Итак ... как я могу использовать порт 443 с отключенным SSL?

NameVirtualHost *:80
Listen 80
<VirtualHost *:80>

    # Force SSL
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R=301,L]

</VirtualHost>

NameVirtualHost *:443
Listen 443
<VirtualHost *:443>
   SSLEngine Off
   DocumentRoot /var/www
   <Directory /var/www/>
        Options All
        AllowOverride All
        Order allow,deny
        allow from all
   </Directory>
</VirtualHost>

Ответ - просто полностью отключить mod-ssl

sudo a2dismod ssl
sudo apachectl restart

определите порт 443 как http в вашем ports.conf (для debian)

например

ИмяVirtualHost *: 443

Слушай 443 http

Ответ - просто полностью отключить mod-ssl

sudo a2dismod ssl
sudo apachectl restart