Problemas con Apache, vhost, redirección, https y ssl

Problemas con Apache, vhost, redirección, https y ssl

Asuntos:

No hay entradas en el registro de reescritura contra estos errores.

Configuración de host virtual

<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>

Respuesta1

Esto no es un problema con la redirección, es un problema con SSL (la solicitud debe descifrarse antes de que se realice la redirección).

¿Tiene Listen 443algún lugar en su configuración de Apache? Pégalo si no lo haces, cerca de la parte Listen 80. ¿Está ejecutando otros sitios web SSL en este servidor? Asegúrese de que no estén usando la misma dirección IP. Finalmente, si tiene un certificado SSL que funciona en otro lugar, intente usarlo para este sitio; le dará una advertencia en el navegador, pero si acepta la advertencia, debería redirigir; entonces sabrá que el problema es su certificado SSL.

Respuesta2

ssl_error_rx_record_too_long ocurre cuando Apache espera SSL y recibe http.

Asegúrese de que todas las solicitudes del puerto 443 lleguen a un host virtual con SSLEngine On. Necesitas arreglar tu <VirtualHost 127.0.1.3:443>.

Además, su certificado debe funcionar tanto para example.com como para *.example.com. De lo contrario, sus clientes recibirán desagradables advertencias en lugar de una redirección.

información relacionada