Driver acme
Supported keywords:
- comment
- directory
- renew_before
- webroot
Keyword comment
required: false
scopable: false
Description:
A free form text describing the role of the object, of the node, or of the section it is set in.
The keyword is accepted in any section, so the DEFAULT section can document a configuration as a whole, and a resource, pool, heartbeat, array or network section can document itself.
The agent does not interpret the value.
Keyword directory
required: false
scopable: false
Example:
directory=letsencrypt
Description:
The ACME directory the certificate of the sec is issued by, renewed by
om <path> certificate renew or a task.acme resource. letsencrypt and
letsencrypt-staging name the directories of Let’s Encrypt, and any other
value is the url of a directory.
The domains are the cn and the alt_names of the sec, and the account is
registered there, with its email as the contact when it has one.
A sec naming no directory has its certificate generated as certificate create does, self-signed or signed by its ca, and renewed the same way when
due.
Use the staging directory of Let’s Encrypt to try a setup out: its certificates are not trusted, and its rate limits are far higher.
A certificate of Let’s Encrypt for two names, its http-01 challenges served by the http server of the domains from a webroot:
[DEFAULT]
cn = www.example.com
alt_names = example.com
email = admin@example.com
[acme]
directory = letsencrypt
webroot = /srv/web.ns1.vol.cluster1/acme-challenges
The same, tried out first on the staging directory:
[acme]
directory = letsencrypt-staging
webroot = /srv/web.ns1.vol.cluster1/acme-challenges
Changing the directory, as from letsencrypt-staging to letsencrypt once
the setup works, makes the next renewal issue a new certificate from the
directory now named, due or not.
A sec listed in the listener.tls_secs of the cluster needs no webroot: the
listener of every node answers its challenges on listener.acme_port.
A certificate of the directory of an ACME server of your own, as a smallstep
step-ca with an ACME provisioner named acme, served with a certificate the
node trusts:
[acme]
directory = https://ca.example.com/acme/acme/directory
A certificate of a pebble test server, its certificate trusted by the node too:
[acme]
directory = https://pebble.example.com:14000/dir
A directory requiring an external account binding, as ZeroSSL and Google Trust Services do, is not supported: the account is registered without one.
Keyword renew_before
required: false
scopable: false
default: 30d
convert: duration
Example:
renew_before=20d
Description:
How long before its expiry the certificate is renewed: a renewal earlier than that does nothing. A certificate naming other domains than the sec asks, or self-signed, is renewed whatever its expiry.
Keyword webroot
required: false
scopable: true
rbac: A host path the challenge token is written in requires the root grant.
Example:
webroot=/srv/web-cfg.ns1.vol.cluster1/acme-challenges
Description:
The directory, on the node renewing the certificate, the http server of the
domains serves /.well-known/acme-challenge/ from: the renewal writes the
http-01 challenge token there, under .well-known/acme-challenge/, and the
ACME directory reads it back through the domains.
It is usually a directory of a volume of the service publishing the domains, the renewal running as a task of that service, where it runs.