Habilitando HTTPS en Apache con Certbot y Lets Encrypt

Para habilitar HTTPS en tu servidor Apache, necesitas obtener un certificado SSL/TLS e instalarlo. La forma más sencilla y recomendada de hacerlo es usando Let’s Encrypt con la herramienta Certbot, que automatiza todo el proceso de forma gratuita.

Método Recomendado: Usar Certbot con Let’s Encrypt

Certbot es una herramienta que simplifica enormemente la obtención e instalación de certificados SSL/TLS de Let’s Encrypt. También puede configurar automáticamente tu Apache para usar el certificado y renovarlo cuando esté por expirar.


Paso 1: Instalar Certbot

Primero, necesitas instalar Certbot en tu servidor. El método de instalación varía según tu sistema operativo. Deberás acceder a tu servidor a través de la terminal (SSH).

  • Para Ubuntu/Debian:

    sudo apt update
    sudo apt install certbot python3-certbot-apache
  • Para CentOS/RHEL:

    sudo dnf install certbot python3-certbot-apache

Paso 2: Obtener e Instalar el Certificado

Una vez instalado, puedes ejecutar un solo comando para obtener el certificado e instalarlo en tu configuración de Apache.

Ejecuta el siguiente comando y sigue las instrucciones en pantalla:

sudo certbot --apache

El programa te hará algunas preguntas:

  1. Te pedirá un correo electrónico: Se usará para notificaciones de renovación y avisos de seguridad.
  2. Aceptar los Términos de Servicio: Deberás aceptar para continuar.
  3. Compartir tu correo (opcional): Puedes elegir si deseas compartir tu correo con la Electronic Frontier Foundation.
  4. Seleccionar los dominios: Certbot detectará los dominios (tus ServerName y ServerAlias) configurados en tus archivos de Virtual Host de Apache y te pedirá que selecciones para cuáles quieres habilitar HTTPS.

Una vez que selecciones los dominios, Certbot hará lo siguiente:

  • Verificará que tienes control sobre esos dominios.
  • Descargará un certificado SSL/TLS para ellos.
  • Modificará automáticamente tu configuración de Apache para instalar el certificado.
  • Creará una redirección de HTTP a HTTPS, para que todo el tráfico vaya a la versión segura de tu sitio.

Paso 3: Verificar la Renovación Automática

El certificado de Let’s Encrypt es válido por 90 días. Sin embargo, el paquete de Certbot que instalaste también configura una tarea programada (un cron job) que intentará renovar automáticamente los certificados que estén por expirar.

Puedes probar si la renovación automática funciona correctamente con este comando:

sudo certbot renew --dry-run

Si no hay errores, ¡está todo listo! No necesitas hacer nada más. Certbot se encargará de mantener tu certificado actualizado.


Resumen del Proceso con Certbot

  1. Conéctate a tu servidor.
  2. Instala Certbot y su plugin para Apache.
  3. Ejecuta sudo certbot --apache.
  4. Sigue las instrucciones.
  5. Verifica que la renovación automática está configurada.

Con estos pasos, tu servidor Apache estará configurado para servir tu sitio web a través de HTTPS, asegurando la comunicación entre tus visitantes y tu servidor. 🔒