Я запускаю сайт полностью через 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