Skip to main content
Esta guía recorre toda la configuración de Certplane: ejecutar el broker, definir una política, registrar un host con su certificado de identidad e iniciar el bucle de renovación del agente. Al terminar, tu host tendrá un certificado TLS de confianza pública que se renueva automáticamente.
¿Prefieres Ansible? Salta a la guía de roles de Ansible — los roles certplane_broker y certplane_agent automatizan todo lo que aparece en esta página.
1

Requisitos previos

Antes de empezar:
  • step-ca — Una instancia de step-ca accesible desde tus hosts. Es la CA interna que emite los certificados de identidad de los agentes.
  • Acceso a Let’s Encrypt — El broker usa ACME para obtener certificados públicos. Necesitas un correo válido para la cuenta ACME.
  • Un proveedor DNS soportado para dns-01 — Actualmente cloudflare o httpreq. Los perfiles wildcard requieren dns-01.
  • Los binarios de Certplanecertplane-broker en el host del broker y certplane-agent en cada host gestionado. Se compilan con make desde el repositorio fuente.
2

Despliega el broker

Crea /etc/certplane/broker.yml (refleja examples/config/broker.yml):
broker.yml
server.mtls.agent_ca_bundle debe ser el bundle de CA que firma los certificados de identidad de tus agentes — normalmente la raíz o intermedia de step-ca.Inicia el broker:
El broker escucha en :8443 y exige mTLS a todo agente conectado. Referencia completa en Configuración del broker.
3

Crea el archivo de política

Crea /etc/certplane/policy.yml:
policy.yml
  • profiles — Cada perfil define type (wildcard o multi_san), dns_names permitidos, opciones ACME (acme.challenge y acme.credentials) y un renew_before opcional.
  • hosts — Cada entrada mapea una etiqueta a una identity (el CN del certificado emitido por step-ca) y lista los profiles que ese host puede solicitar. Las peticiones a otros perfiles se rechazan.
Valida antes de desplegar:
Referencia completa en Resumen de política.
4

Registra tu primer host

El registro entrega al host su certificado de identidad. El agente contacta step-ca una vez con un token de arranque corto, genera un par ECDSA localmente y guarda identity.crt.Genera un token de arranque en step-ca:
Escribe el token en el host en la ruta indicada por la configuración del agente (p. ej. /etc/certplane/bootstrap-token, modo 0600).Crea la configuración del agente en /etc/certplane/agent.yml (refleja examples/config/agent.yml):
agent.yml
Ejecuta el registro:
El agente genera identity.key localmente, construye un CSR y lo envía a step-ca junto con el token. Si todo va bien, identity.crt se escribe y el archivo del token se borra.
El token de arranque se consume durante el registro y no es reutilizable. Si falla y necesitas reintentar, genera un token nuevo desde step-ca. Más detalle en Registro del agente.
5

Ejecuta el agente

Una vez registrado el host, ejecuta el bucle de renovación. El agente es un binario one-shot — programalo con un timer (el role de Ansible incluye uno; consulta Ejecutar el agente para la unidad standalone).
En cada ejecución, el agente:
  1. Renueva el certificado de identidad si expira dentro de identity.renew_before.
  2. Para cada entrada en certificates:
    • Asegura una clave de servicio ECDSA local en key (la genera si falta, la reutiliza si existe).
    • Salta el certificado si el existente es válido y aún no entra en la ventana de renew_before.
    • Si no, construye un CSR con los dns_names, llama al broker por mTLS, valida que el bundle devuelto coincide con la clave local y con los DNS solicitados, escribe cert, chain y fullchain, y ejecuta reload_command si está definido.
Valida la configuración y el estado en disco sin cambios:

Próximos pasos