Atlasingeniería

Incidentes en un servidor propioConfiguración que se edita y no se aplicaTema 4

Certificados: renovar, recargar y detectar el que quedó viejo

La renovación automática funcionaba y el sitio seguía sirviendo el certificado anterior. Renovar, recargar y limpiar lo que sobra son tres cosas distintas, y fallar en cualquiera de las tres da el mismo síntoma.

La renovación automática de certificados es de las cosas que mejor funcionan en un servidor moderno. Hasta que un día el navegador avisa que el certificado venció, y al revisar resulta que el archivo en disco está renovado hace semanas.

Renovar y servir lo renovado son dos pasos distintos. El proceso que atiende las conexiones leyó el certificado al arrancar y no volvió a mirar el disco.

Los tres pasos que hay que encadenar

PasoQuién lo haceCómo falla
RenovarEl cliente de certificados, por tarea programadaLa validación no llega al servidor: la ruta de verificación no está publicada
RecargarEl servidor que sirve TLSNadie lo avisa: el archivo está nuevo y el proceso sirve el viejo
Limpiar lo que sobraQuien administraQueda un certificado obsoleto que algún dominio sigue usando
Los tres dan el mismo síntoma en el navegador y se arreglan en lugares distintos.

En un esquema con un proxy en contenedor y el cliente de certificados en el host, el paso del medio es el que se olvida: el gancho de recarga tiene que cruzar ese límite, y si el contenedor se reconstruye, el gancho puede quedar apuntando a algo que ya no existe.

Cuando falla la renovación misma

La renovación necesita demostrar que uno controla el dominio, y el método habitual es servir un archivo en una ruta conocida. Ahí hay varias formas de romperlo sin querer.

Las cuatro más comunes

  1. Una regla del proxy que redirige todo a otro lado o a la versión cifrada, y se lleva puesta la ruta de validación.
  2. Un directorio de verificación que no coincide entre el cliente que escribe el archivo y el servidor que lo publica.
  3. Un dominio que ya no apunta al servidor y sigue en la lista de renovación: falla todo el grupo, incluidos los dominios que sí están bien.
  4. Límites del proveedor por demasiados intentos, después de varias pruebas fallidas seguidas.

Detectarlo antes que el usuario

Lo que convierte esto en un no-evento es una comprobación que mire lo que se sirve, no lo que está en disco.

Antes de seguir, predecí

¿Qué comprobación detecta los tres modos de falla a la vez?

Con eso, una alerta cuando falten menos de dos semanas para el vencimiento deja margen de sobra: la renovación ocurre mucho antes, así que si el aviso llega, es que algo del encadenamiento se rompió.

Lo que quedó establecido

Cinco reglas

  1. Un solo lugar donde vive el certificado, montado en el proxy en modo lectura.
  2. Gancho de recarga como parte de la renovación, no como paso manual, y verificado después de cada cambio en la infraestructura del proxy.
  3. Comprobación externa periódica del vencimiento por dominio, no por archivo.
  4. Inventario de dominios: cuáles existen, en qué certificado están y cuál usa cada configuración. Es lo que evita el certificado huérfano.
  5. Revisar después de tocar el proxy. Cualquier cambio estructural es el momento donde el gancho se rompe sin avisar.
Más a fondo · nivel seniorLa cadena completa, no sólo la hoja

Un certificado puede estar vigente y la conexión fallar igual si falta un certificado intermedio en la cadena que envía el servidor. Los navegadores suelen completar lo que falta y muchos clientes —los de las aplicaciones y las integraciones— no lo hacen, así que el síntoma aparece sólo en una parte del tráfico. Por eso conviene verificar con una herramienta que valide la cadena entera y no sólo abrir el sitio en el navegador.

El vencimiento en el log

Buscá en el log

El sitio anda en el navegador y una aplicación móvil dejó de conectarse. ¿Qué línea explica la diferencia?

debug 1info 7warn 2error 111 de 11

Que no dependa de acordarse

Cierre

Autoevaluación

¿Lo entendiste?

El certificado en disco está renovado pero el navegador dice que venció. ¿Qué falló?
¿Por qué conviene verificar el vencimiento conectándose al dominio y no revisando archivos?