El objetivo principal es asegurar el sitio web mediante la implementación de SSL/TLS (HTTPS). Esto implica:
mod_ssl).Asegúrate de que el módulo SSL de Apache esté activado en el sistema.
sudo a2enmod ssl
Crea un directorio seguro para almacenar la clave privada y el certificado, manteniendo el orden en el sistema.
sudo mkdir /etc/apache2/ssl
Utiliza OpenSSL para generar una clave privada (apache.key) y un certificado auto-firmado (apache.crt) en un solo paso. La clave tendrá una longitud de 2048 bits.
ServerName que usarás (ejemplo: pabloglezigl.es).
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Copia la plantilla de configuración SSL predeterminada de Apache como punto de partida para tu dominio.
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/pabloglezigl.es-ssl.conf
Abre el nuevo archivo para editarlo:
sudo nano /etc/apache2/sites-available/pabloglezigl.es-ssl.conf
Dentro del bloque <VirtualHost *:443>, asegúrate de configurar lo siguiente:
ServerName debe coincidir con el del certificado.DocumentRoot debe apuntar a la carpeta de tu web.SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Habilita la nueva configuración del sitio seguro.
sudo a2ensite pabloglezigl.es-ssl.conf
Es necesario activar el módulo de Apache responsable de las reescrituras de URL y redirecciones.
sudo a2enmod rewrite
Edita el archivo de configuración original del sitio inseguro.
sudo nano /etc/apache2/sites-available/pabloglezigl.es.conf
Dentro del bloque <VirtualHost *:80>, puedes eliminar las directivas de DocumentRoot, ya que este puerto solo servirá para redirigir. Añade el siguiente bloque:
# Redirección obligatoria a HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</IfModule>
^(.*)$) y redirígelo a la misma dirección pero con https:// al principio, usando un código 301 (movido permanentemente)".
Antes de reiniciar, verifica que no haya errores de sintaxis en los archivos de configuración.
sudo apache2ctl configtest
Si el resultado es "Syntax OK", reinicia Apache para aplicar todos los cambios.
sudo systemctl restart apache2
https://pabloglezigl.es. El navegador mostrará una advertencia de seguridad (es normal, ya que el certificado es auto-firmado). Acepta el riesgo y continúa. El sitio debe cargar y mostrar un candado (posiblemente rojo o tachado).http://pabloglezigl.es. Confirma que el navegador te redirige automáticamente a la versión HTTPS.