Skip to content

// docs · sample configs

Smallstep step-ca · DNS-01

An internal certificate from a step-ca ACME provisioner. step-ca does all three challenges; this config picks dns-01, so nothing needs :80 or :443 open.

[cert]
hostname = "app01.internal.lan"
key_type = "ec256"

[acme]
ca            = "custom"
directory_url = "https://ca.example.com:9000/acme/acme/directory"
email         = "ops@example.com"
challenge     = "dns-01"

[acme.dns]
provider = "cloudflare"            # creds via env: CLOUDFLARE_DNS_API_TOKEN

The directory_url follows https://<ca-host>:9000/acme/<provisioner>/directory. Using dns-01 keeps every inbound port closed, which pairs well with an internal CA and internal DNS. If the provisioner sets requireEAB, add [acme.eab].kid and SYSCERT_EAB_HMAC. Trust bootstraps the same way as Vault: point ca_bundle at the CA, then run sudo syscert trust install.

File: stepca-dns-01.toml

The [store], [[distribute]] and [logging] tail is identical in every example; see Sample configs.