Saltar al contenido principal
El broker aplica un único archivo de política declarativa (policy.path en broker.yml). Define perfiles (la forma de una solicitud) y hosts (qué identidades pueden pedir qué perfiles). El esquema autoritativo es schemas/policy.schema.json.

Política mínima

version: 1

profiles:
  public_edge_main:
    type: wildcard
    dns_names:
      - "*.example.com"
    acme:
      challenge: dns-01
      credentials: cloudflare/example-com
    renew_before: 720h

hosts:
  edge01:
    identity: edge01.h.int.example.com
    profiles:
      - public_edge_main

Claves de nivel superior

ClaveObligatoriaNotas
versionnoDebe ser 1 si se da. Reservado para migraciones futuras. Por defecto: 1.
profilesMap nombre → definición. Al menos uno.
hostsMap etiqueta → definición. Al menos uno.
El broker rechaza claves desconocidas (additionalProperties: false).

Cómo se autoriza una solicitud

Cuando un agente llama a POST /v1/certificates:
  1. El broker lee el CN del certificado cliente (la identidad).
  2. Busca esa identidad en hosts.<etiqueta>.identity. Si ningún host coincide, deniega.
  3. El profile solicitado (cuerpo JSON) debe aparecer en los profiles del host.
  4. Los DNS del CSR deben satisfacer los dns_names del perfil — los wildcard exigen que las SAN caigan bajo el wildcard; los multi_san exigen que las SAN estén exactamente en la lista permitida.
  5. Si pasa todo, sirve un bundle cacheado o emite por ACME.
Cada decisión queda en el log de auditoría.

Recarga en caliente

policy.watch: true en broker.yml recarga al cambiar el archivo. El broker registra el nuevo hash, útil para correlacionar recargas con el stream de auditoría.

Validar antes de desplegar

certplane-broker -c /etc/certplane/broker.yml policy validate --policy /etc/certplane/policy.yml
Compila la política con el mismo código que usa el servidor. Si va bien imprime:
policy ok: hash=abc123… profiles=N identities=M
El mismo hash aparece en el arranque del broker y en los eventos de auditoría, lo que facilita confirmar qué política está activa.

Sigue con