The broker reads a single YAML configuration file, passed at startup with theDocumentation Index
Fetch the complete documentation index at: https://certplane.kippel.org/llms.txt
Use this file to discover all available pages before exploring further.
--config flag. This page documents every supported field, its type, default value, and when it is required.
Full example
server
Address and port the broker listens on, in the form
host:port. Use
:8443 to listen on all interfaces on port 8443.server.tls
Path to the broker’s TLS server certificate (PEM). This certificate is
presented to agents and any other clients connecting to the broker API.
Path to the broker’s TLS server private key (PEM).
Minimum TLS version the broker accepts. Accepted values:
"1.2" or
"1.3". Set to "1.3" to disable TLS 1.2 in high-security environments.server.mtls
Path to the internal CA bundle (PEM) used to validate agent identity
certificates during the mTLS handshake. Only agents whose certificates
chain up to a CA in this bundle are allowed to connect.
Server timeouts
These fields tune the HTTP server’s connection-level timeouts. Defaults are conservative values suitable for most deployments.Maximum time allowed to read the request headers.
Maximum time allowed to read the full request body.
Maximum time allowed to write the response. Set this higher than any
expected ACME round-trip time.
Maximum time an idle keep-alive connection is kept open.
policy
Path to the policy YAML file. The policy file defines which hosts are
allowed to request which certificate profiles.
When
true, the broker watches the policy file for changes and reloads it
automatically without a restart. Useful in environments where policy is
managed by configuration management tools.issuer
Certificate issuer provider. The only supported value is
acme.issuer.acme
These fields are required when issuer.provider is acme.
Use the staging directory while you are testing to avoid hitting Let’s
Encrypt rate limits:
- Staging:
https://acme-staging-v02.api.letsencrypt.org/directory - Production:
https://acme-v02.api.letsencrypt.org/directory
ACME directory URL for the CA you want to use. See the note above for
the Let’s Encrypt staging and production URLs.
Email address registered with the ACME account. Let’s Encrypt uses this
address to send expiry warnings and policy notifications.
Path to the ACME account private key (PEM). If the file does not exist,
the broker generates a new key and registers a new account on first
startup.
DNS provider used to complete dns-01 challenges, for example
cloudflare. The broker uses the corresponding provider credentials
from the configured secrets provider.Preferred certificate chain name when the ACME CA offers multiple chains.
For Let’s Encrypt this is typically
"ISRG Root X1". If omitted, the
CA’s default chain is used.store
Storage driver for broker state. Accepted values:
sqlite or file.Path to the storage file. For the
sqlite driver this is the SQLite
database file. The broker creates the file if it does not exist.audit
Enable audit logging. When enabled, the broker records an audit event for
every certificate request, including the requesting identity, the
requested profile, and the outcome.
Controls broker behavior when the audit log cannot be written. Accepted
values:
fail_open— the broker continues to issue certificates even if audit logging fails.fail_closed— the broker refuses to issue certificates until audit logging is restored.
When
true, audit events are written to the main application log in
addition to the dedicated audit log. Useful for development and
troubleshooting.rate_limits
Maximum number of certificate requests a single host identity may make in
any rolling one-hour window, across all profiles. Set to
0 to disable
this limit.Maximum number of certificate requests a single host identity may make for
a specific profile in any rolling one-hour window. Set to
0 to disable
this limit.logging
Minimum log level to emit. Accepted values:
debug, info, warn,
error.Output format for log lines. Accepted values:
json for structured
logging (recommended for log aggregation), text for human-readable
output.Where logs are written. Accepted values:
stdout or stderr.