broker.yml. The authoritative source is schemas/broker.schema.json. Most editors (VS Code, JetBrains) will load it automatically if you reference the schema with a YAML # yaml-language-server: $schema=... comment or via your editor’s schema mapping.
Required top-level keys: server, policy, issuer.
server
address accepts any Go net.Listen syntax. Use :8443 to bind all interfaces; use 127.0.0.1:8443 and front with a reverse proxy if you need a custom termination model — keep in mind the broker requires mTLS on the connection that reaches it.
policy
The schema and semantics are in Policy overview.
issuer
Currently acme is the only provider.
DNS provider credentials are resolved through
secrets — see below and Let’s Encrypt + dns-01.
secrets
See Vault and OpenBao secrets for the credential reference format.
store
audit
Inspect events with
certplane-broker -c <config> audit tail [--limit N].
rate_limits
0 disables the corresponding limit. Negative values are invalid.
logging
info, json, stdout.
Validation
certplane-broker rejects the config on startup if:
- Any required field is missing.
tls.min_versionis not1.2or1.3.- An ACME field required by
provider: acmeis missing. secrets.providerisvault/openbaowithoutvault.addressor with an invalidkv_version.store.driveris notsqliteorfile.audit.failure_modeis notfail_openorfail_closed.- Either rate-limit value is negative.