¿Cómo redirigir desde HTTPS a HTTP antes del error del servidor?

10

Solía ​​operar un sitio web con un certificado SSL, pero he dejado de usar el certificado SSL. El problema es que la mayoría de los enlaces externos al sitio web utilizan el prefijo https: //.

Intenté https: // a http: // redirigir en el archivo .htaccess:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}

Pero parece, como se ha señalado en otra parte, que el servidor está tratando de recuperar el certificado antes de activar la redirección. Por lo tanto, se muestra un error antes de que se realice la redirección. El error es una advertencia de que el certificado ha caducado, o si elimino la solicitud de firma del certificado, entonces un error de que SSL recibió un registro que excedió la longitud máxima permitida.

¿Hay alguna manera de permitir que los enlaces entrantes se redirijan correctamente?

usuario981178
fuente
1
SSL se negocia antes de que tenga lugar cualquier solicitud HTTP, como creo que ha descubierto. Creo que tendrá un problema para que esto funcione como lo desea, pero voy a votar para migrar a ServerFault.com en caso de que alguien tenga una mejor respuesta.
Michael
Parece que esto puede ser difícil de lograr. Es un verdadero fastidio perder los enlaces acumulados en Internet y, lo que es peor, que los visitantes piensen que el sitio ha sido comprometido o desaparecido.

Respuestas:

16

La diferencia entre http y https es que las solicitudes https se envían a través de una conexión cifrada SSL. La conexión cifrada con SSL debe establecerse entre el navegador y el servidor antes de que el navegador envíe la solicitud http.

Las solicitudes HTTP son, de hecho, solicitudes HTTP que se envían a través de una conexión cifrada SSL. Si el servidor rechaza establecer una conexión cifrada SSL, entonces el navegador no tendrá conexión para enviar la solicitud. El navegador y el servidor no tendrán forma de comunicarse entre sí. El navegador no podrá enviar la url a la que desea acceder y el servidor no podrá responder con una redirección a otra url.

Entonces esto no es posible. Si desea responder a los enlaces https, necesita un certificado SSL.

sstendal
fuente
4

No, si fuera posible redirigir de https a http sin un certificado real, sería una falla de seguridad importante.

Considere que un delincuente de alguna manera puede hacer que el servidor seguro del banco redirija a una conexión insegura sin necesidad de un certificado https real para el sitio, le permitiría al delincuente secuestrar la conexión sin que el usuario lo supiera.

La única solución que puedo ver es obtener un certificado barato y luego hacer una redirección normal desde el sitio HTTPS (al que el usuario no puede acceder sin un certificado válido) al sitio normal para esos enlaces externos.

Joachim Isaksson
fuente
Bien, es mejor así. Lástima que no haya alguna forma de configurar una anulación aprobada como propietario del sitio.
-2

Deberías crear en tu .htaccess

ErrorDocument 500 http://anotherserer.com/errorPage.php

fuente
Gracias por la sugerencia. Incluso con esto en .htaccess, no está usando la página que ingresé para el error 500 de este error en particular. Parece que, tal vez, nada en el .htaccess se está activando debido al error inicial.