
Asuntos:
- https://www.ejemplo.com-> debería redirigir ahttp://www.ejemplo.com, no lo hace, proporciona el código de error: ssl_error_rx_record_too_long sin redirección, error_log: "[error] [cliente 127.0.1.3] Método no válido en la solicitud \x16\x03\x01
- https://www.example.com/fundprocess.html-> debería redirigirhttps://ejemplo.com/fundprocess.html, proporciona el código de error: ssl_error_rx_record_too_long sin redirección, error_log: "[error] [cliente 127.0.1.3] Método no válido en la solicitud \x16\x03\x01"
- https://ejemplo.com-> Debería redirigir ahttp://www.ejemplo.com, no
- http://ejemplo.com/-> Debería redirigir ahttp://www.ejemplo.com, no
- http://ejemplo.com/fundprocess.htmldebería redirigir ahttps://ejemplo.com/fundprocess.html, no
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 443
algú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.