# `CONSFIGURATOR.PROPERTY.LETS-ENCRYPT`

## API reference

### General

#### Property: `LETS-ENCRYPT:INSTALLED`

`(lets-encrypt:installed)`

#### Class: `LETS-ENCRYPT:AGREE-TOS`

Object representing your agreement with the Let’s Encrypt Subscriber Agreement; you will need to pass this to properties which will invoke the Let’s Encrypt client. Supply an e-mail address so that Let’s Encrypt can contact you for things like certificate expiry, planned outage notifications etc.

#### Macro: `LETS-ENCRYPT:AGREE-TOS`

`(lets-encrypt:agree-tos &key email-address)`

#### Property: `LETS-ENCRYPT:CERTIFICATE-OBTAINED`

`(lets-encrypt:certificate-obtained agree-tos htdocs &rest domains)`

Obtains, and renews as necessary, an SSL certificate for DOMAINS. The first element of DOMAINS, after flattening, is the Common Name of the certificate. Use of this property implies agreement with the Let’s Encrypt Subscriber Agreement; AGREE-TOS is an instance of LETS-ENCRYPT:AGREE-TOS. HTDOCS is the web root for DOMAINS, which must be writeable, and publically available over plain HTTP.

This property does nothing to ensure that your web server will actually use the obtained certificate. Typically you’ll want to combine this property with web server-specific properties in a DEFPROPLIST/DEFPROPSPEC.

#### Property: `LETS-ENCRYPT:CERTIFICATE-OBTAINED-STANDALONE`

`(lets-encrypt:certificate-obtained-standalone agree-tos &rest domains)`

Like LETS-ENCRYPT:CERTIFICATE-OBTAINED, but use the –standalone argument to letsencrypt(1) to start up the client’s built-in webserver on port 80. Useful on hosts which do not normally run a web server, but nevertheless require an SSL certificate for other service(s), such as mail servers.

#### Function: `LETS-ENCRYPT:FULLCHAIN-FOR`

`(lets-encrypt:fullchain-for domain)`

#### Function: `LETS-ENCRYPT:CHAIN-FOR`

`(lets-encrypt:chain-for domain)`

#### Function: `LETS-ENCRYPT:CERTIFICATE-FOR`

`(lets-encrypt:certificate-for domain)`

#### Function: `LETS-ENCRYPT:PRIVKEY-FOR`

`(lets-encrypt:privkey-for domain)`