Skip to main content
This page covers running certplane-broker on a single host. For the full schema reference, see Broker configuration. To automate everything below with Ansible, see the Ansible roles guide.

Prerequisites

  • A reachable step-ca (used to issue agent identities — the broker only needs its CA bundle, not credentials).
  • A TLS server certificate and key for the broker’s mTLS API. This can be issued by step-ca or any other CA your agents will trust.
  • The CA bundle that signs your agent identity certificates (typically the step-ca root or intermediate).
  • A supported ACME provider account email — the broker creates the ACME account on first use.
  • DNS provider credentials for dns-01 challenges, if you plan to issue wildcards. Supported: cloudflare, httpreq.

Filesystem layout

The recommended layout, matching the certplane_broker Ansible role:
A dedicated certplane system user owns /var/lib/certplane and the ACME account key.

Minimum config

/etc/certplane/broker.yml
See Broker configuration for every field. The full JSON Schema lives at schemas/broker.schema.json.

CLI

The broker binary is a Cobra app with the global -c / --config flag and subcommands: -c is required for every subcommand.

systemd unit

The certplane_broker role ships this unit. To run by hand:
/etc/systemd/system/certplane-broker.service
Enable and start:

Verify it is running

/readyz returns 503 policy not loaded until the policy file is present and parses. The issuance endpoint (POST /v1/certificates) requires a valid agent client certificate and is normally only called by certplane-agent.

Policy hot reload

Set policy.watch: true to reload the policy file in place when its contents change on disk. No restart is needed. The broker logs the new policy hash, which you can correlate with the audit log.

Next steps