Skip to main content
See API overview for how to authenticate. Reading the CA and its certificates needs Manage proxies (proxy.manage); making, changing, exporting and importing it and a certificate’s private key need a superadmin. Every change is in the audit log.
For what the CA does, see Private certificate authority. Certificates from ACME are in the Certificates API.

The CA

The settings (POST / PUT / POST /versions):
An empty intermediate_cn is named after the root: Example Root CA gives Example Issuing CA, a root named otherwise <Organization> Issuing CA, else DNZ Issuing CA. key_type is ecdsa-p256, ecdsa-p384, rsa-2048, rsa-3072 or rsa-4096. Empty name_constraints let the CA sign any name. A change to subject, key_type, root_years, the intermediate or name_constraints makes a new version; crl, base_url and defaults apply at once. A field left out takes its default, so a PUT sends the whole settings: start from the active version’s settings in GET /api/ca.

Certificates

A certificate’s kind is manual (issued by hand), route (a route needs it) or server (DNZ’s own); its state is pending, issuing, valid, renewing, failed or revoked.

The root and revocation lists

No sign-in: these hold certificates only, no key.

The ACME server

For what it does, see ACME. RFC 8555 itself is under /acme/private-ca/, with no sign-in: directory, new-nonce, new-account, new-order, account/{id}, account/{id}/orders, order/{id}, order/{id}/finalize, authz/{id}, chall/{id}/{type}, cert/{id}, revoke-cert and key-change. Requests are JWS, ES256 or RS256.

DNZ’s own certificate

PUT /api/encrypted-dns/certificate with "resolver": "private-ca" has the CA sign DNZ’s own certificate for DoT, DoH and HTTPS. See Encrypted DNS.