Cuando montas una página web en tu servidor, lo primero que te viene a la mente es que bien funciona y que perfección.
Pero …. oh wait.
De repente tu cabeza empieza a dar vueltas al ver que no tiene forzado el certificado de seguridad y se puede acceder por el puerto 80.
Como todo el mundo sabe o debería saber, dejar agujeros en tu pagina web no es nada recomendado y te puede salir caro a la larga..
Aquí os traigo la solución para arreglar este problema y que vuestras mentes estén tranquilas ;).
Hay varias maneras de redirigir el trafico de http a https:
Método Redirect
El método redirect, es fácil con añadir una linea en la configuración de la web.
en el archivo de configuración de la pagina web alojada en /etc/apache/sites-avalaible/paginaweb.conf
<VirtualHost *:80>
ServerName pruebita.es
Redirect permanent / https://pruebita.es/
</VirtualHost>
Método .htaccess utilizando redirect
Este método es simplemente añadir la siguiente linea en el archivo .htacess
El archivo .htaccess esta en la raíz de vuestra carpeta web.
Redirect permanent / https://pruebita.es/
Método Rewrite
El método rewrite requiere lo siguiente:
- Tener habilitado el modulo de rewrite en Apache
- Se habilita en Ubuntu: sudo a2enmod rewrite
- Se habilita en CentOS: nano vi /etc/httpd/conf/httpd.conf y quitamos # a la linea LoadModule rewrite_module modules/mod_rewrite.so
Una vez habilitado añadimos las siguientes lineas:
<VirtualHost *:80>
ServerName pruebita.es
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
Método .htaccess con modulo rewrite
El metodo .htacess con modulo rewrite, requiere el modulo activado.
El archivo .htaccess esta en la raíz de vuestra carpeta web.
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Método PHP
El método PHP es una función que nos permite redirigir el trafico de http a https por encima de todos los scripts.
< ?php
function redirectTohttps() {
if($_SERVER[‘HTTPS’]!=”on”) {
$redirect= “https://”.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];
header(“Location:$redirect”); } }
?>
Antes de utilizar cualquiera de estos métodos, aseguraros que funciona correctamente los certificados..
Quizás te pueda interesar ya de paso..
Quitar contraseña al certificado SSL en LINUX
Quitar contraseña al certificado SSL en LINUX