Está en la página 1de 2

Redirigir HTTP a HTTPS con Apache2

En un servidor Apache pueden convivir sin problemas para una misma web HTTP y HTTPS, pero
puede resultar interesante que todo el tráfico solicitado por HTTP, muy inseguro, se redirija a una
conexión segura como es HTTPS .
Vamos a forzar al servidor a que siempre utilice HTTPS, y que no envíe nada a través de HTTP.

Esta configuración es válida para Debian o distribuciones basadas en Debian.


Lo primero que debemos de hacer es la configuración de HTTPS, aquí teneis el enlace de cómo
hacerlo.
Una vez que tenemos funcionando HTTP y HTTPS, debemos de habilitar el modulo de Apache2
mod_rewirte, con el comando:
a2enmod rewrite

Si el comando no funciona es porque a2enmod viene en el paquete apache2.2-common


por lo que tendrías que instalarlo y luego ejecutar de nuevo el comando anterior:

apt-get install apache2.2-common

Hecho esto, editamos el archive default ó 000-default de la carpeta /etc/apache2/sites-available:


nano /etc/apache2/sites-available/default

Cambiamos toda la configuración del archivo por esto:


<VirtualHost *:80>
ServerAdmin webmaster@localhost
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

Yo, personalmente, prefiero configurar todo en el archivo default, tanto HTTP como HTTPS, pasando
del archivo default-ssl, por lo cual mi archivo default es este:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
DocumentRoot /var/www
SSLEngine On
SSLCertificateFile /etc/ssl/certs/apache2.pem
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>

<Directory "/var/www">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
SSLRequireSSL
</Directory>

Bueno, pues cuando tengamos esto hecho, reiniciamos el apache:


/etc/init.d/apache2 restart

También podría gustarte