Saltar al contenido principal
El broker resuelve la cadena acme.credentials de cada perfil a través de un provider de secretos enchufable. Se selecciona con secrets.provider en broker.yml.
ProviderCuándo usarlo
envBroker único; credenciales en variables de entorno.
fileCredenciales en el filesystem del broker (p. ej. archivo renderizado por Ansible).
vaultHashiCorp Vault KV.
openbaoOpenBao KV (mismo protocolo que Vault).

env (por defecto)

secrets:
  provider: env
La cadena acme.credentials se trata como nombre de variable de entorno:
CLOUDFLARE_DNS_API_TOKEN=... certplane-broker -c /etc/certplane/broker.yml serve
En systemd:
/etc/systemd/system/certplane-broker.service.d/env.conf
[Service]
Environment=CLOUDFLARE_DNS_API_TOKEN=cf-token-aqui

file

secrets:
  provider: file
La cadena acme.credentials se interpreta como ruta de archivo. El broker lee el contenido, lo recorta y lo usa como secreto. El archivo debe ser legible por el usuario certplane.
install -m 0600 -o certplane -g certplane cf.token /etc/certplane/secrets/cloudflare
policy.yml
profiles:
  public_edge_main:
    type: wildcard
    dns_names: ["*.example.com"]
    acme:
      challenge: dns-01
      credentials: /etc/certplane/secrets/cloudflare

vault / openbao

secrets:
  provider: vault         # o openbao
  vault:
    address: https://vault.int.example.com:8200
    token_file: /etc/certplane/vault-token
    mount_path: secret
    kv_version: 2
    key: value
    timeout: 10s
    namespace: ""
CampoPor defectoNotas
addressObligatorio con vault u openbao.
tokenToken inline. Evítalo.
token_fileArchivo con el token. Preferido.
mount_pathsecretMount del KV.
kv_version21 o 2.
keyvalueClave dentro del JSON del secreto.
timeout10s
namespaceSolo Vault Enterprise.
acme.credentials nombra la ruta en Vault relativa a mount_path. Con mount_path: secret y kv_version: 2:
policy.yml
profiles:
  public_edge_main:
    type: wildcard
    dns_names: ["*.example.com"]
    acme:
      challenge: dns-01
      credentials: certplane/cloudflare/example-com
…lee secret/data/certplane/cloudflare/example-com y devuelve el valor en data.value (o lo que diga vault.key). Tutorial completo: Secretos en Vault y OpenBao.

Cómo elegir

  • ¿Solo arrancando? env. Dos segundos.
  • ¿Producción single-broker? file está bien si ya renderizas con tu config-management.
  • ¿Multi-broker o rotación centralizada? vault u openbao.