En los albores de internet, podríamos decir que todo era mas “seguro” y existían muchos menos ataques malintencionados que ahora, con lo que todas las webs funcionaban bajo el protocolo http.
Con el tiempo se detecto que ese protocolo era inseguro ya que el trafico viajaba sin cifrar, con lo que se creo el protocolo seguro “https”, con lo que si queremos que nuestra web funcione siempre en con el protocolos seguro debemos de redirigir todo el trafico http a https.
A continuación paso a explicar como hacerlo el servidor web apache.
Si lo hacemos en un entorno ubuntu/debian los pasos de instalación serian estos:
#Instalamos apache2
apt-get install apache2
#Habilitamos el módulo SSL y rewrite
a2enmod ssl
a2enmod rewrite
Y en centos estos:
#Instalar apache2
yum install http
# Instalamos el módulo SSL y openssl
yum install mod_ssl openssl
#Añadimos modulo en fichero configuracion
vi /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
A continuación en el fichero de configuración de apache redirigimos el trafico.
#debian/ubuntu
/etc/apache2/sites-enabled/000-default.conf
#centos
vim /etc/httpd/conf.d/000-vhost.conf
<VirtualHost *:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
Con esta configuración forzaremos que todo trafico http vaya al puerto https.