The broker is the central component of Certplane. It validates agent identity certificates over mTLS, enforces your issuance policy, requests certificates from Let’s Encrypt via ACME, and returns signed bundles to agents. This page walks you through configuring and starting the broker from scratch.Documentation Index
Fetch the complete documentation index at: https://certplane.kippel.org/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you configure the broker, have the following ready:
- Internal CA — a running step-ca instance that will issue machine identity certificates to agents.
- Broker TLS certificate and key — a certificate issued by your internal CA for the broker’s HTTPS listener (e.g.
broker.int.example.com), along with its private key. - Agent CA bundle — the internal CA root certificate (PEM) that signed, and will sign, agent identity certificates. The broker uses this to verify mTLS connections from agents.
- ACME account email — the email address to register with Let’s Encrypt.
- ACME account key — a PEM-encoded EC or RSA private key for the ACME account. Generate one with
openssl ecparam -name prime256v1 -genkey -noout -out account.key. - DNS provider credentials — API credentials for your DNS provider (currently
cloudflare), used for thedns-01ACME challenge. Make these available as environment variables on the broker host.
Create broker.yml
Create
/etc/certplane/broker.yml with the following content. Every field shown here corresponds to a real configuration key — do not add fields not listed below.The broker listens on
:8443 by default. To bind to a specific interface, set server.address to a full address such as 0.0.0.0:8443 or 192.168.1.10:8443.Create a policy file
The broker requires a policy file at the path set in
policy.path. The policy file defines which certificate profiles exist and which agent identities are allowed to request them.Create /etc/certplane/policy.yml to get started. See Policy overview for the full policy reference.If you set
policy.watch: true, the broker reloads policy.yml automatically whenever the file changes on disk — no restart required. This is useful when you manage policy with a configuration management tool that writes the file in place.Start the broker
Run the broker, passing the path to your config file:The broker starts listening on the configured address and logs startup events to stdout in JSON format. If any required fields are missing or invalid, the broker exits immediately with a descriptive error.For a full reference of every configuration field and its accepted values, see Broker configuration.