ACME-CLIENT(1)
π¦ acme-client(1) β okay so this is the General Commands Manual, bestie π¦
β¨ NAME β¨
acme-client β the ACME client, aka your little certificate-getting bestie π
πΈ SYNOPSIS πΈ
acme-client [-Fnrv] [-f configfile] handle
π DESCRIPTION π
acme-client is an Automatic Certificate Management Environment (ACME) client. It's giving "I go look in my config for a domain section that matches the handle you handed me on the command line, and then I use that config to go get you an X.509 certificate." And what's that certificate for? Domain name validation, babe β literally proving the domain is who it says it is π«Ά. These certificates usually do the HTTPS thing for web servers, but honestly they can show up anywhere you need domain name validation (mail servers, we see you π).
So here's the vibe check on renewal: if the certificate already exists and it's getting close to expiry, acme-client tries to renew it. For certs with a lifetime of more than 10 days, it renews when less than a third of the lifetime remains β³. Otherwise, renewal happens when half the lifetime has expired. Math but make it β¨certificate managementβ¨.
Now, to prove the client actually has access to the domain, the signing authority issues a challenge. acme-client implements the βhttp-01β challenge type β that's the one where a file gets created inside a directory that a locally run web server can reach. The default challenge directory is /var/www/acme, and you can serve it with httpd(8) using this location block, which will properly map response challenges (no cap, this exact block):
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
The options are as follows, bestie:
π OPTIONS π
-Fβ Force certificate renewal, regardless of how much lifetime is left. No thinking, just renewing π₯-fconfigfile β Specify an alternative configuration file. Use a different one than the default, go off π-nβ No operation: it just checks and prints the configuration. A little vibe check, no changes made π-rβ Revoke the X.509 certificate. Bye bye certificate π-vβ Verbose operation. Specify it twice to also trace communication and data transfers. Double-v= maximum yapping π£οΈhandleβ The handle of the domain section of the configuration that contains the details of the certificate to be created, renewed or revoked π
π FILES π
/etc/acmeβ Private keys foracme-client. Keep these safe, they're iconic but secret π€«/etc/acme-client.confβ Default configuration./var/www/acmeβ Default challengedir.
β EXIT STATUS β
acme-client returns 0 if certificates were changed (revoked or updated), 1 on failure, or 2 if the certificates didn't change (up to date). So like, 2 isn't a flop, it's just "we're already slaying" π
π§ EXAMPLES π§
Example configuration files for acme-client and httpd(8) are provided in /etc/examples/acme-client.conf and /etc/examples/httpd.conf. Free templates, we love to see it π
To generate a certificate for example.com and use it to provide HTTPS, create acme-client.conf and httpd.conf and run:
# acme-client -v example.com && rcctl reload httpd
A cron(8) job can renew the certificate as necessary. On renewal, httpd(8) is reloaded:
~ * * * * acme-client example.com && rcctl reload httpd
Set it and forget it, main character energy π
π₯ SEE ALSO π₯
openssl(1), acme-client.conf(5), httpd.conf(5), ssl(8)
π STANDARDS π
R. Barnes, J. Hoffman-Andrews, D. McCarney, and J. Kasten, Automatic Certificate Management Environment (ACME), RFC 8555, March 2019.
π HISTORY π
The acme-client utility first appeared in OpenBSD 6.1. A whole era began β¨
πΈ AUTHORS πΈ
The acme-client utility was written by Kristaps Dzonsons <kristaps@bsd.lv>. Thank you legend π«Ά
π CAVEATS π
Okay this part matters, bestie, listen up π The usual ACME service providers are notoriously picky about authenticating rules, and yield fairly long time-outs after just a few invalid attempts. It is strongly suggested to first validate a configuration with a staging server before moving an official certificate validation workflow to crontab(5) status. Like, don't rawdog your production certs, test first, fr fr π
And that's the whole page, mwah π β this beauty came from the Debian manual set, dated September 18, 2025. Go forth and get those certificates π
π¦ where this page comes from
- alpine 3.24: acme-client-doc 1.3.7-r0 Β· GPL-2.0-only
- nixos 26.05: acme-client 1.3.7
- Copyright (c) 2016 Kristaps Dzonsons <kristaps@bsd.lv>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms