Apache, vhost, перенаправление, https, проблемы с ssl

Apache, vhost, перенаправление, https, проблемы с ssl

Проблемы:

В журнале перезаписи нет записей об этих ошибках.

Конфигурация vhost

<VirtualHost 127.0.1.3:80>
ServerAdmin [email protected]
ServerName www.example.com

DocumentRoot /var/www/html
<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride All


    Order allow,deny
    Allow from all
</Directory>


Redirect permanent /fundprocess.html https://example.com/fundprocess.html
Redirect permanent /fund_process.php https://example.com/fund_process.php

ErrorLog /var/log/apache2/example.com-error_log
TransferLog /var/log/apache2/example.com-access_log
LogLevel warn

RewriteLog /var/log/apache2/example.com-rewrite_log
RewriteLogLevel 9



</VirtualHost>


<VirtualHost 127.0.1.2:80>
ServerAdmin [email protected]
ServerName example.com
DocumentRoot /var/www/html

    RewriteCond %{REQUEST_URI} !fundprocess.html [NC]
    RewriteCond %{REQUEST_URI} !fund_process.php [NC]
    RewriteRule (.*) http://www.example.com/$1 [R=301,L]

    RewriteCond %{REQUEST_URI} fundprocess.html [NC]
    RewriteCond %{REQUEST_URI} fund_process.php [NC]
    RewriteRule (.*) https://example.com/$1 [R=301,L]



</VirtualHost>



<VirtualHost 127.0.1.3:443>
ServerAdmin [email protected]
ServerName www.example.com
DocumentRoot /var/www/html

    RewriteCond %{REQUEST_URI} !fundprocess.html [NC]
    RewriteCond %{REQUEST_URI} !fund_process.php [NC]
    RewriteRule (.*) http://www.example.com/$1 [R=301,L]

    RewriteCond %{REQUEST_URI} fundprocess.html [NC]
    RewriteCond %{REQUEST_URI} fund_process.php [NC]
    RewriteRule (.*) https://example.com/$1 [R=301,L]


</VirtualHost>



<VirtualHost 127.0.1.2:443>
ServerAdmin [email protected]
ServerName example.com


DocumentRoot /var/www/html
<Directory /var/www/html>

    Options Indexes FollowSymLinks
    AllowOverride All


    Order allow,deny
    Allow from all

 </Directory>


RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !fundprocess.html [NC]
RewriteCond %{REQUEST_URI} !fund_process.php [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

ErrorLog /var/log/apache2/example.com-ssl-error_log
TransferLog /var/log/apache2/example.com-ssl-access_log
LogLevel warn

RewriteLog /var/log/apache2/example.com-rewrite_log
RewriteLogLevel 9


SSLEngine On
SSLCertificateFile /etc/certs/example.crt
SSLCertificateKeyFile /etc/certs/example.key


SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

</VirtualHost>

решение1

Это не проблема с перенаправлением, это проблема с SSL (запрос должен быть расшифрован до того, как произойдет перенаправление).

Есть ли Listen 443где-нибудь в конфигурации Apache? Вставьте его, если нет, рядом с частью Listen 80. Вы запускаете какие-либо другие веб-сайты SSL на этом сервере? Убедитесь, что они не используют тот же IP-адрес. Наконец, если у вас есть сертификат SSL, который работает в другом месте, попробуйте использовать его для этого сайта — он выдаст предупреждение в браузере, но если вы примете предупреждение, он должен перенаправить — тогда вы будете знать, что проблема в вашем сертификате SSL.

решение2

ssl_error_rx_record_too_long возникает, когда Apache ожидает SSL, а получает http.

Убедитесь, что все запросы порта 443 попадают на виртуальный хост с SSLEngine On. Вам нужно исправить ваш <VirtualHost 127.0.1.3:443>.

Также ваш сертификат должен работать как для example.com, так и для *.example.com. В противном случае ваши клиенты будут получать уродливые предупреждения вместо перенаправления.

Связанный контент