🛡️ Práctica: Asegurando el Servidor Web con HTTPS

Objetivo de la Práctica

El objetivo principal es asegurar el sitio web mediante la implementación de SSL/TLS (HTTPS).

Fase I: Preparación y Generación del Certificado

1. Habilitar Módulo SSL

sudo a2enmod ssl

2. Creación del Directorio de Certificados

sudo mkdir /etc/apache2/ssl

3. Generación de Clave y Certificado

Nota Importante: El "Common Name (CN)" debe coincidir exactamente con el ServerName.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Fase II: Configuración del Virtual Host Seguro

1. Creación del Virtual Host HTTPS

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/pabloglezigl.es-ssl.conf

2. Edición del Virtual Host HTTPS

SSLEngine on
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

3. Activación del Sitio HTTPS

sudo a2ensite pabloglezigl.es-ssl.conf

Fase III: Redirección de HTTP a HTTPS

1. Habilitar Módulo Rewrite

sudo a2enmod rewrite

2. Implementar la Regla de Redirección

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</IfModule>

Fase IV: Verificación y Prueba Final

1. Comprobar Sintaxis y Reiniciar

sudo apache2ctl configtest
sudo systemctl restart apache2