¿Cómo redirige HTTPS a HTTP?

¿Cómo redirige HTTPS a HTTP ?. Es decir, lo opuesto a lo que (aparentemente) todos enseñan.

Tengo un servidor en HTTPS para el cual pagué una certificación SSL y un espejo para el cual no lo he hecho y lo mantengo solo para emergencias, por lo que no merece recibir una certificación.

En los escritorios de mi cliente, tengo ALGUNOS accesos directos que apuntan a http://production_server https://production_server y https://production_server (ambos funcionan). Sin embargo, sé que si mi servidor de producción falla, el reenvío de DNS entra en acción y los clientes que tienen “https” en su atajo https://mirror_server (que no funciona) y un gran Internet Explorer 7 pantalla roja de intranquilidad para mi empresa.

Desafortunadamente, no puedo cambiar esto en el nivel del cliente. Estos usuarios son muy analfabetos en informática: y es muy probable que se vuelvan locos al ver los errores de “inseguridad” de HTTPS (especialmente la forma en que lo manejan Firefox 3 e Internet Explorer 7: FULL STOP, afortunadamente, pero no me ayudaron aquí).

Es muy fácil encontrar soluciones Apache para la redirección http-> https , pero por mi vida no puedo hacer lo contrario.

Ideas?

Esto no ha sido probado, pero creo que esto debería funcionar usando mod_rewrite

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

Tenga en cuenta que el motor Rewrite solo se activa una vez que se ha recibido la solicitud HTTP, lo que significa que aún necesita un certificado para que el cliente pueda configurar la conexión para enviar la solicitud.

Sin embargo, si la máquina de copia de seguridad parecerá tener el mismo nombre de host (en lo que respecta al cliente), entonces no debería haber ninguna razón por la que no pueda usar el mismo certificado que la máquina de producción principal.

Según la respuesta de ejunker, esta es la solución que funciona para mí, no en un solo servidor, sino en un entorno de nube

 Options +FollowSymLinks RewriteEngine On RewriteCond %{ENV:HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Para aquellos que están usando un archivo .conf .

  ServerName domain.com RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} SSLEngine on SSLCertificateFile /etc/apache2/ssl/domain.crt SSLCertificateKeyFile /etc/apache2/ssl/domain.key SSLCACertificateFile /etc/apache2/ssl/domain.crt  

Si ninguna de las soluciones anteriores funciona para usted (no lo hicieron para mí), esto es lo que funcionó en mi servidor:

 RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301] 

todo lo anterior no funcionó cuando usé Cloudflare, este me funcionó:

 RewriteCond %{HTTP:X-Forwarded-Proto} =https RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

y este definitivamente funciona sin proxies en el camino:

 RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Es mejor evitar el uso de mod_rewrite cuando puedas. En tu caso, reemplazaría la Reescritura con esto:

   Redirect permanent / http://production_server/  

La directiva solo está disponible en Apache 2.4+ según este blog aquí

Ninguna de las respuestas funciona para mí en el sitio web de WordPress, pero después de las obras (es similar a otras respuestas, pero tienen un pequeño cambio)

 RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Por lo que sé, una meta actualización simple también funciona sin causar errores: