Acmetool stores all state in a single directory (default /var/lib/acme).
live/ directory
Contains symlinks for hostnames pointing to their respective certificate directories. Use these stable paths in your webserver config:
/var/lib/acme/live/example.com/{cert,chain,fullchain,privkey}
desired/ directory
Contains YAML target files. Each file defines what certificates should be obtained.
Target File Structure Example:
satisfy:
names:
- example.com
- www.example.com
request:
provider: # ACME Directory URL
ocsp-must-staple: true
challenge:
webroot-paths:
- /var/www
http-ports:
- 123
env:
FOO: BAR
key:
type: rsa|ecdsa
rsa-size: 2048
ecdsa-curve: nistp256
priority: 0
Important Constraints
- Filesystem Boundaries: All files under the state directory must reside on the same filesystem.
- Target Files: An empty target file in
desired/ defaults to the filename as the target hostname.
satisfy:
names:
- example.com # The names you want on the certificate.
- www.example.com
request:
provider: # ACME Directory URL. Normally set in conf/target only.
ocsp-must-staple: true # Request OCSP Must Staple. Use with care.
challenge:
webroot-paths: # You can specify custom webroot paths.
- /var/www
http-ports: # You can specify different ports for proxying.
- 123 # Defaults to listening on localhost.
- 456
- 0.0.0.0:789 # Global listen.
http-self-test: false # Defaults to true. If false, will not perform self-test
# but will assume challenge can be completed. Rarely needed.
env: # Optionally set environment variables to be passed to hooks.
FOO: BAR
key: # What sort of key will be used for this certificate?
type: rsa|ecdsa
rsa-size: 2048
ecdsa-curve: nistp256
id: krzh2akn... # If specified, the key ID to use to generate new certificates.
# If not specified, a new private key will always be generated.
# Useful for key pinning.
priority: 0