beginner Por Mathias Paulenko

Plantilla de Gestion de Certificados SSL

Una plantilla para rastrear el inventario, renovaciones, despliegues y riesgos de vencimiento de certificados TLS/SSL en dominios y servicios.

Nota para desarrolladores hispanohablantes: Esta guía incluye ejemplos y convenciones de nomenclatura adaptadas a equipos que trabajan en español. Cuando existen diferencias significativas en terminología técnica entre el inglés y el español, se indican explícitamente para facilitar la comunicación en equipos multiculturales.

Descripcion General

Los certificados SSL/TLS protegen los datos en transito al cifrar el trafico entre clientes y servidores. Certificados vencidos, mal configurados u olvidados pueden causar interrupciones, advertencias de seguridad y perdida de confianza del cliente. Esta plantilla proporciona un proceso para rastrear el inventario de certificados, planificar renovaciones, desplegar certificados y responder a incidentes relacionados con certificados.

Cuando Usar

  • For alternatives, see CI/CD Security: Harden Your Pipelines and Prevent Supply.

  • Configurar un nuevo dominio o servicio publico.

  • Migrar de una autoridad certificadora a otra.

  • Prepararse para una auditoria de seguridad o higiene de infraestructura.

  • Despues de que un certificado vencido causo una interrupcion o advertencia.

  • Automatizar la gestion del ciclo de vida de certificados con herramientas como Let’s Encrypt, Certbot o un servicio de certificados gestionados.

Prerequisitos

  • Lista de dominios, subdominios y servicios que usan certificados TLS.
  • Autoridad certificadora (CA) o proveedor de certificados gestionados como Let’s Encrypt, DigiCert o AWS ACM.
  • Proceso de despliegue para actualizar certificados en load balancers, servidores web, CDNs y contenedores.
  • Sistema de monitoreo para alertar sobre vencimiento de certificados.
  • Propiedad de los equipos de seguridad, plataforma y aplicacion.

Solucion

Plantilla

1. Inventario de Certificados

Dominio / ServicioTipo de CertificadoProveedorFecha de VencimientoRenovacion AutomaticaDuenoNotas
example.comWildcardLet’s Encrypt2026-09-15SiEquipo de plataformaUsado en CDN
api.example.comEstandarDigiCert2026-12-01NoEquipo APIRenovacion manual
app.example.comGestionadoAWS ACMAutoSiEquipo de plataformaAdjunto a ELB
internal.example.comAuto-firmadoCA interna2027-01-10NoEquipo ITHerramientas internas
cdn.example.comEstandarCloudflareAutoSiEquipo de plataformaCertificado edge

2. Etapas del Ciclo de Vida del Certificado

EtapaActividadesDuenoMomento
SolicitudIdentificar dominio, validar propiedad, elegir CAEquipo de aplicacion o plataformaAl aprovisionar
AprobacionRevision de seguridad, aprobacion de presupuesto, seleccion de CASeguridad / finanzasAntes de la compra
EmisionGenerar CSR, enviar solicitud, descargar certificadoEquipo de plataformaMismo dia
DespliegueInstalar certificado en todos los endpoints y probarEquipo de plataformaMismo dia
RenovacionSolicitar nuevo certificado antes del vencimientoEquipo de plataforma30 dias antes del vencimiento
RevocacionRevocar certificado comprometido y reemplazarEquipo de seguridadInmediato
RetiroEliminar certificado antiguo del inventario y sistemasEquipo de plataformaDespues del reemplazo

3. Flujo de Trabajo de Renovacion

PasoAccionDuenoMomento
1Revisar inventario de certificados que vencen en 30, 14 y 7 diasEquipo de plataformaDiario
2Generar o renovar certificado con la CAEquipo de plataforma30 dias antes del vencimiento
3Validar cadena de certificados y probar en stagingEquipo de plataformaAntes del despliegue
4Desplegar certificado en endpoints de produccionEquipo de plataformaDurante ventana de mantenimiento
5Verificar endpoint de produccion usando verificadores SSLEquipo de plataformaDespues del despliegue
6Actualizar inventario y log de renovacionEquipo de plataformaMismo dia
7Cerrar ticket de renovacionEquipo de plataformaMismo dia

4. Calendario de Alertas de Vencimiento

Dias para VencimientoCanal de AlertaAccion
60 diasCorreo al duenoPlanificar renovacion
30 diasSlack o correo al equipoIniciar proceso de renovacion
14 diasPagina al guardia si no se renovoEscalar renovacion
7 diasPagina al gerente y lider de seguridadRenovacion de emergencia o workaround
1 diaPagina ejecutivo + respuesta a incidentesTratar como incidente

5. Checklist de Despliegue

  • El certificado y la clave privada se almacenan de forma segura en un vault o gestor de certificados.
  • La cadena completa de certificados se incluye durante el despliegue.
  • El certificado se despliega en todos los endpoints: load balancers, servidores web, CDNs y proxies.
  • El certificado se prueba con herramientas como SSL Labs, OpenSSL o curl.
  • El certificado anterior se elimina de la configuracion despues del despliegue.
  • El inventario se actualiza con la nueva fecha de vencimiento, numero de serie y fecha de despliegue.
  • Las alertas de monitoreo reflejan el nuevo certificado.

6. Respuesta a Incidentes de Certificados

EscenarioRespuestaDueno
Certificado vencido en produccionRenovar de emergencia o hacer rollback al certificado valido anteriorEquipo de plataforma + guardia
Certificado mal configuradoRe-desplegar cadena correcta y probar todos los endpointsEquipo de plataforma
Certificado comprometidoRevocar, reemplazar e investigar exposicionEquipo de seguridad
Falla de validacion de dominioRe-verificar DNS o validacion HTTP y reintentarEquipo de plataforma
Falla de renovacion automaticaCambiar a renovacion manual y reparar la causa raiz de la automatizacionEquipo de plataforma

Explicacion

La gestion de certificados es una tarea operativa repetitiva que se vuelve riesgosa a escala. La plantilla centraliza el inventario, las fechas de renovacion y los procedimientos de despliegue para que los certificados no expiren inesperadamente. Tambien vincula la salud de los certificados con monitoreo y respuesta a incidentes, haciendo que los problemas de certificados sean mas faciles de detectar y resolver rapidamente.

Script de Renovacion Automatica con Certbot

#!/bin/bash
# Renovar todos los certificados de Let's Encrypt y recargar nginx
set -euo pipefail

CERTBOT=/usr/bin/certbot
WEBROOT=/var/www/certbot
NGINX_CONTAINER=nginx

# Renovar certificados
$CERTBOT renew --webroot --webroot-path $WEBROOT --quiet --deploy-hook "docker exec $NGINX_CONTAINER nginx -s reload"

# Verificar codigo de salida
if [ $? -eq 0 ]; then
  echo "[$(date)] Renovacion de certificado exitosa" >> /var/log/certbot-renew.log
else
  echo "[$(date)] Renovacion de certificado FALLIDA" >> /var/log/certbot-renew.log
  # Enviar alerta a Slack
  curl -X POST -H 'Content-type: application/json' \
    --data '{"text":"Renovacion de certificado SSL FALLIDA en $(hostname)"}' \
    $SLACK_WEBHOOK_URL
  exit 1
fi

Configuracion de cert-manager en Kubernetes

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: platform@example.com
    privateKeySecretRef:
      name: letsencrypt-prod-key
    solvers:
      - http01:
          ingress:
            class: nginx
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: api-tls
  namespace: production
spec:
  secretName: api-tls-secret
  duration: 2160h    # 90 dias
  renewBefore: 360h  # 15 dias antes de expirar
  dnsNames:
    - api.example.com
    - www.api.example.com
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer

Consulta para Dashboard de Inventario de Certificados

-- Alerta de Prometheus: certificado por expirar
-- Regla de Alertmanager para cert-manager
SELECT
  domain_name,
  issuer,
  expiry_date,
  owner_team,
  CASE
    WHEN expiry_date < NOW() + INTERVAL '7 days' THEN 'CRITICAL'
    WHEN expiry_date < NOW() + INTERVAL '30 days' THEN 'WARNING'
    WHEN expiry_date < NOW() + INTERVAL '60 days' THEN 'INFO'
    ELSE 'OK'
  END AS status
FROM certificate_inventory
WHERE expiry_date < NOW() + INTERVAL '90 days'
ORDER BY expiry_date ASC;

Variantes

  • Automatizacion con Let’s Encrypt: Usa Certbot, acme. sh o clientes ACME con renovacion y despliegue automatizados.
  • Servicio de certificados gestionados: Usa AWS ACM, Azure Key Vault o Cloudflare SSL para certificados totalmente gestionados.
  • Flujo de CA empresarial: Usa autoridades certificadoras internas con flujos de aprobacion y validacion de dominio.
  • Gestion de certificados multi-cloud: Centraliza certificados entre proveedores usando un vault o gestor de certificados.
  • Gestion de certificados nativa de contenedores: Usa cert-manager o herramientas similares en Kubernetes.

Lo que funciona

  • Manten una unica fuente de verdad para todos los certificados y sus duenos.
  • Automatiza la renovacion y el despliegue siempre que sea posible.
  • Monitorea el vencimiento de certificados con alertas a 60, 30, 14, 7 y 1 dia antes del vencimiento.
  • Usa certificados de corta duracion con renovacion automatica para reducir la exposicion.
  • Almacena claves privadas y certificados en un vault seguro.
  • Prueba los despliegues de certificados en staging antes de produccion.
  • Documenta las excepciones para certificados que no pueden renovarse automaticamente.
  • Incluye verificaciones de certificados en revisiones de gestion de cambios y auditorias.

Errores Comunes

  • Depender del seguimiento manual en hojas de calculo sin monitoreo.
  • Olvidar desplegar la cadena de certificados intermedios.
  • Perder certificados en endpoints secundarios como CDNs o load balancers.
  • No actualizar el monitoreo despues de la renovacion de un certificado.
  • Dejar certificados vencidos en archivos de configuracion.
  • Usar certificados auto-firmados para servicios publicos.
  • No revocar certificados despues de una compromiso.

Troubleshooting

  • Authentication bypass in tests: ensure test users cannot reach production endpoints.
  • False positives in scanning tools: tune rules against the risk profile. Distinguish between reachable vulnerabilities and theoretical issues.
  • Secrets appear in logs: Audit log sinks for sensitive patterns.
  • CSP breaks legitimate functionality: Iterate on allowed sources based on real violations.
  • Incident response stalls: run tabletop exercises.

Lectura Adicional

  • Documentación oficial: consulta la referencia actualizada del framework o herramienta utilizada.
  • Guías relacionadas: explora las guías de ssl y tls para profundizar.
  • Patrones complementarios: revisa los patrones de diseño aplicables a tu stack tecnológico.
  • Postmortems públicos: estudia incidentes reales de equipos que enfrentaron problemas similares en producción.

Notas de Producción

  • Despliega gradualmente usando canary o blue-green para detectar regresiones temprano.
  • Configura alertas para errores, latencia p99 y tasa de fallos antes de habilitar en producción.
  • Documenta el rollback en el runbook; prueba el procedimiento en staging al menos una vez por trimestre.
  • Revisa logs estructurados con correlation IDs para trazar requests end-to-end en incidentes.

Puntos Clave

  • Aplica plantilla de gestion de certificados ssl cuando necesites una solución práctica para tu caso de uso.
  • Monitorea el rendimiento después de implementar; mide latencia, errores y uso de recursos antes y después.
  • Revisa la sección de Troubleshooting ante errores comunes; la mayoría tienen causa raíz documentada con solución.
  • Mantén dependencias actualizadas y ejecuta tests en CI para prevenir regresiones en producción.

Errores Comunes en Producción

  • Dejar campos requeridos vacíos o usar respuestas vagas de una palabra.
  • Llenar el documento una vez y nunca actualizarlo cuando cambia el alcance o las decisiones.
  • Guardar el documento donde el equipo no lo busque durante incidentes o revisiones.
  • No asignar un responsable, fecha límite o cadencia de revisión.
  • Copiar texto base sin eliminar secciones que no aplican.
  • Saltar el control de versiones, lo que impide rollback y responsabilidad.
  • No vincular el documento con decisiones relacionadas o acciones de seguimiento.
  • Evitar revisiones trimestrales que retirarían secciones obsoletas o sin uso.

Preguntas frecuentes

Cual es la diferencia entre SSL y TLS?
SSL es el protocolo mas antiguo. TLS es el sucesor moderno y seguro. El termino "certificado SSL" sigue usandose comúnmente, pero los certificados actuales soportan TLS 1.2 o TLS 1.3.
Deberiamos usar certificados wildcard o certificados separados por subdominio?
Los wildcards son convenientes para muchos subdominios pero comparten una sola clave privada. Los certificados separados reducen el radio de explosion y soportan diferentes ciclos de renovacion....
Como prevenimos interrupciones por vencimiento de certificados?
Usa renovacion automatica con alertas de monitoreo, manten un inventario preciso y prueba los despliegues. Trata los certificados que vencen en 7 dias como incidentes.
Como manejamos certificados para servicios internos?
Usa una autoridad certificadora (CA) interna como step-ca, HashiCorp Vault PKI o AWS Private CA. Distribuye el CA raiz a todos los clientes internos via gestion de configuracion. Automatiza la...
Que es certificate pinning y deberiamos usarlo?
Certificate pinning fija el certificado o clave publica esperado en el cliente, rechazando conexiones con certificados diferentes. Previene ataques MITM incluso si el CA se ve comprometido. Usalo...
Como migramos de HTTP a HTTPS sin downtime?
1. Obten certificados para todos los dominios. 2. Configura HTTPS en el load balancer o reverse proxy. 3. Habilita HSTS con un max-age corto inicialmente. 4. Configura redirecciones de HTTP a HTTPS....
Que es OCSP stapling y por que deberiamos habilitarlo?
OCSP (Online Certificate Status Protocol) stapling adjunta un estado de revocacion firmado al handshake TLS, para que el cliente no necesite contactar al CA por separado. Esto mejora el rendimiento...
Como manejamos la seguridad de certificados wildcard?
Los certificados wildcard (*.example.com) comparten una unica clave privada entre todos los subdominios. Si la clave se compromete, todos los subdominios se ven afectados. Mitiga: almacenando la...
Como automatizamos el despliegue de certificados a load balancers?
Usa infrastructure-as-code (Terraform, CloudFormation) para gestionar adjuntos de certificados. Para AWS, usa el ARN del certificado ACM en tu regla de listener del ALB. Para nginx, usa un deploy...
Que es certificate transparency y por que importa?
Certificate Transparency (CT) es un sistema donde los CAs registran cada certificado emitido en logs publicos y de solo adicion. Esto permite a cualquiera monitorear certificados no autorizados para...