acmetool(8)

πŸ“¦
version 0.2.2 Β· 3 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– acmetool πŸ’– (System Manager's Manual, section 8)

okay bestie, listen β€” you know that one tool in the System Manager's Manual called acmetool? Yeah. This is her. She lives in section 8, she's a whole queen, and she's about to get you certificates. Sit down, hydrate, let's go 🫢


✨ NAME ✨

acmetool β€” request certificates from ACME servers automatically πŸŽ€


✨ SYNOPSIS ✨

acmetool [<flags>] <command> [<args> ...]

like. that's the whole shape of it. flags, a command, args. iconic.


🌸 DESCRIPTION 🌸

acmetool is a utility for the automated retrieval, management and renewal of certificates from ACME server such as Let's Encrypt. she is obsessed with automation, idempotency, and the minimisation of state β€” like, she does not want to keep a bunch of stuff around, she is unbothered, moisturized, in her lane ✨

so how do you even use her? you configure targets β€” typically with the want command, that's the vibe. then acmetool requests certificates as necessary to satisfy the configured targets. new certificates get requested wherever the existing ones are soon to expire. no cap. she just handles it πŸ’…

she stores her state in a state directory. you can specify it on invocation via the --state option; otherwise, the path in ACME_STATE_DIR is used, or, failing that, the path /var/lib/acme (recommended πŸ₯‡).

the --xlog options control the logging. the --service options control privilege dropping and daemonization β€” and those are applicable only to the redirector subcommand. like, only her. iykyk.


πŸ’… OPTIONS πŸ’…

okay this is the long part bestie, but every single one matters, so we're doing all of them, no skips, no shortcuts πŸ”₯

  • --help β€” Show context-sensitive help (also try --help-long and --help-man). yes, there's three of them. she's thorough.
  • --state=/var/lib/acme β€” Path to the state directory (env: ACME_STATE_DIR)
  • --hooks=/etc/acme/hooks β€” Path to the notification hooks directory (env: ACME_HOOKS_DIR)
  • --batch β€” Do not attempt interaction; useful for cron jobs. (acmetool can still obtain responses from a response file, if one was provided.) so like, she'll shut up and just work 🫑
  • --stdio β€” Don't attempt to use console dialogs; fall back to stdio prompts
  • --response-file=RESPONSE-FILE β€” Read dialog responses from the given file (default: $ACME_STATE_DIR/conf/responses)
  • --version β€” Print version information
  • --xlog.facility=daemon β€” Syslog facility to use
  • --xlog.syslog β€” Log to syslog?
  • --xlog.syslogseverity=DEBUG β€” Syslog severity limit
  • --xlog.journal β€” Log to systemd journal?
  • --xlog.journalseverity=DEBUG β€” Systemd journal severity limit
  • --xlog.severity=NOTICE β€” Log severity (any syslog severity name or number)
  • --xlog.file="" β€” Log to filename
  • --xlog.fileseverity=TRACE β€” File logging severity limit
  • --xlog.stderr β€” Log to stderr?
  • --xlog.stderrseverity=TRACE β€” stderr logging severity limit
  • --service.cpuprofile="" β€” Write CPU profile to file
  • --service.debugserveraddr="" β€” Address for debug server to listen on (do not specify a public address) (default: disabled) 🚨 like seriously bestie, not a public one
  • --service.uid="" β€” UID to run as (default: don't drop privileges)
  • --service.gid="" β€” GID to run as (default: don't drop privileges)
  • --service.daemon β€” Run as daemon? (doesn't fork)
  • --service.stderr β€” Keep stderr open when daemonizing
  • --service.chroot="" β€” Chroot to a directory (must set UID, GID) ("/" disables) πŸ”’
  • --service.pidfile="" β€” Write PID to file with given filename and hold a write lock
  • --service.fork β€” Fork? (implies -daemon)

πŸ¦‹ SUBCOMMANDS πŸ¦‹

the main character energy lives here. pick your girl 🌈

help [<command>...]

Show help.

reconcile [<target-filenames>...]

Reconcile ACME state, idempotently requesting and renewing certificates to satisfy configured targets.

this is the default command, so if you just run acmetool with nothing else, this is what you get. she's the default for a reason πŸ’–

cull [<flags>]

Delete expired, unused certificates πŸ—‘οΈ

  • -n, --simulate β€” Show which certificates would be deleted without deleting any β€” like a little dress rehearsal, no actual deleting, we're just looking πŸ‘€

status

Show active configuration

want [<flags>] <hostname>...

Add a target with one or more hostnames

  • --reconcile β€” Specify --no-reconcile to skip reconcile after adding target

unwant <hostname>...

Modify targets to remove any mentions of the given hostnames β€” the reverse of want, she's letting go πŸƒ

quickstart [<flags>]

Interactively ask some getting started questions (recommended ✨)

  • --expert β€” Ask more questions in quickstart wizard β€” for the girlies who want the full interrogation πŸ’…

redirector [<flags>]

HTTP to HTTPS redirector with challenge response support

  • --path=PATH β€” Path to serve challenge files from
  • --challenge-gid=CHALLENGE-GID β€” GID to chgrp the challenge path to (optional)
  • --read-timeout=10s β€” Maximum duration before timing out read of the request (default: '10s')
  • --write-timeout=20s β€” Maximum duration before timing out write of the request (default: '20s')
  • --status-code=308 β€” HTTP status code to use when redirecting (default '308')
  • --bind=":80" β€” Bind address for redirectory (default ':80')
remember: the --service options up in OPTIONS? they're applicable only to this subcommand. just her. πŸ’…

test-notify [<hostname>...]

Test-execute notification hooks as though given hostnames were updated

import-jwk-account <provider-url> <private-key-file>

Import a JWK account key

import-pem-account <provider-url> <private-key-file>

Import a PEM account key

import-key <private-key-file>

Import a certificate private key πŸ”‘

import-le [<le-state-path*>]

Import a Let's Encrypt client state directory

revoke [<certificate-id-or-path>]

Revoke a certificate β€” it's giving closure πŸ’€

account-thumbprint

Prints account thumbprints

account-url

Show account URL


πŸ‘‘ AUTHOR πŸ‘‘

Β© 2015 Hugo Landau <hlandau@devever.net> MIT License

periodt. that's the author, that's the copyright, that's the license, all of it, untouched πŸ’œ


🌈 SEE ALSO 🌈

Documentation: <https://github.com/hlandau/acmetool>

Report bugs at: <https://github.com/hlandau/acmetool/issues>


and that's the whole page, bestie πŸŽ€ this was acmetool(8) β€” straight out of the System Manager's Manual, source/version acmetool, and yeah she's got no date on the footer because she's timeless ✨ go get those certificates. slay. πŸ’–

πŸ“¦ where this page comes from