ACME client written with process isolation and minimal privileges in mind


lacme is an ACME client which can be used to request X.509 certificates from ACME service providers such as Let's Encrypt or ZeroSSL. The architecture is divided into four components, each with its own executable:

 * A process to manage the account key and issue SHA-256 signatures needed for
   each ACME command. (This process binds to a UNIX-domain socket to reply to
   signature requests from the ACME client.) One can use the UNIX-domain
   socket forwarding facility of OpenSSH 6.7 and later to run this process on
   a different host.

 * A "master" process, which runs as root and is the only component
   with access to the private key material of the server keys. It is used to
   fork the ACME client (and optionally the ACME webserver) after dropping
   root privileges. For certificate issuances, it also generates Certificate
   Signing Requests, then verifies the validity of the issued certificate, and
   optionally reloads or restarts services.

 * An actual ACME client, which builds ACME commands and dialogues with
   the remote ACME server. Since ACME commands need to be signed with the
   account key, the "master" process passes the UNIX-domain socket of the
   account key manager to the ACME client: data signatures are requested by
   writing the data to be signed to the socket.

 * For certificate issuances, an optional webserver, which is spawned
   by the "master" process when no service is listening on the HTTP port.
   (The only challenge type currently supported is "http-01", which requires a
   webserver to answer challenges.) That webserver only processes GET and
   HEAD requests under the "/.well-known/acme-challenge/" URI. By default
   some iptables(8) rules are automatically installed to open the HTTP port,
   and removed afterwards.

Upload more screenshots

Please help extend the collection of screenshots. Just make a screenshot and upload it here. You don't need to register or anything.

Upload a screenshot

Hint: upload an image here from your clipboard with Ctrl-V


Install this software package

If the package is available for the distribution you are currently using on your computer then install the software by clicking on…

Install lacme