La noche que caducó el SSL

La alerta que nadie quiere recibir

Eran las 2 de la madrugada de un martes. El móvil vibró en la mesilla de noche con una de esas alertas que te hielan la sangre: SSL_CERTIFICATE_EXPIRED. Todos los servicios de cara al público estaban caídos, mostrando esa horrible advertencia de seguridad en el navegador. El pánico inicial fue muy real.

En mis tiempos de sysadmin más tradicional, la solución habría sido una carrera contra el reloj: conectarme al servidor, generar un nuevo CSR, comprar o renovar el certificado, subir los ficheros y reiniciar Nginx. Un proceso manual, estresante y propenso a errores en mitad de la noche. Probablemente, una hora de downtime.

El Toil que nos mordió

Este incidente era la definición perfecta de “toil”: un trabajo manual, repetitivo y que no aporta valor duradero. Renovar un certificado es una tarea mecánica. ¿Por qué una persona tenía que despertarse de madrugada para hacerlo?

El postmortem del día siguiente fue “blameless” (sin culpas), pero directo. La causa raíz no fue que “a alguien se le olvidó renovar el certificado”. La causa raíz fue: “El proceso de renovación de certificados es manual y depende de la memoria humana”.

La Solución SRE: Automatizar hasta olvidar

La acción correctiva fue clara: eliminar la intervención humana del proceso. Decidimos implementar Let’s Encrypt con Certbot.

La configuración fue sorprendentemente sencilla:

  1. Instalar Certbot en los servidores web.
  2. Ejecutar un único comando para obtener y configurar los certificados para nuestros dominios.
  3. Añadir una tarea en cron que ejecuta certbot renew una vez por semana.

Y ya está. Magia.

Certbot se encarga de comprobar la fecha de caducidad de los certificados y los renueva automáticamente semanas antes de que caduquen, sin ninguna intervención por mi parte. Desde que implementamos esta solución hace más de dos años, no hemos vuelto a tener una sola interrupción por un certificado caducado.

Obviamente, este tipo de soluciones se han implementado en entornos donde tener un certificado SSL firmado por una empresa como Sectigo, DigiCert o GeoTrust no es explicitamente necesario.

Esta anécdota, aunque simple, fue una lección fundamental en mi camino hacia SRE: Tu trabajo no es ser un héroe a las 2 AM. Tu trabajo es construir un sistema que no te necesite a las 2 AM. La automatización no es un lujo, es la base de la fiabilidad.