TLS Certificates ################ .. index:: TLS; ACME, ACME ACME - Certbot ============== .. index:: ACME; Certbot Config Configuration via */etc/letsencrypt/cli.ini* -------------------------------------------- Any global --some-option can be used in `cli.ini`_ by omitting the leading hyphens (--). To set an option for a specific certificate set the option on the respective config file in ``/etc/letsencrypt/renewal/``. Useful defaults:: email = person@example.com agree-tos = true Change key type:: key-type = ecdsa elliptic-curve = secp384r1 Alternative chains:: preferred-chain = ISRG Root X1 Specifying *ISRG Root X1* will omit the expired root certificate included by default to `support ancient versions of Android`_. [#f1]_ See also: * `RFC 8555`_ (ACME) * `Certbot Documentation `_ .. index:: DNS; CAA, TLS; CAA .. _caa: CAA === The CAA DNS record type can be used to limit what CA can issue a certificate for a domain or subdomain. Send reports about unauthorized request to issue a certificate to a specific mail address:: example.com. IN CAA 0 iodef "mailto:hostmaster@example.com" Not all CAs support this. Allow only Let's Encrypt to issue certificates:: example.com. IN CAA 0 issue "letsencrypt.org" Only allow a certain validation method and specific accounts:: ; Allow letsencrypt example.com. IN CAA 0 issue "letsencrypt.org; accounturi=https://acme-staging.api.letsencrypt.org/acme/reg/571142; validationmethods=http-01" example.com. IN CAA 0 issue "letsencrypt.org; accounturi=https://acme-v01.api.letsencrypt.org/acme/reg/7738050; validationmethods=http-01" You usually want to specify a production and a staging `account URI`_ to ensure --dry-run works. Prohibit issuance of a certificate:: ; non-wildcard example.com. IN CAA 0 issue ";" ; wildcard example.com. IN CAA 0 issuewild ";" Override policy for subdomain:: example.com. IN CAA 0 issue "letsencrypt.org" subdomain.example.com. IN CAA 0 issue "ca.example.org" When issuing certificate for www.subdomain.example.com, a CAA record is searched for at www.subdomain.example.com, subdomain.example.com, and example.com, in this order. The first policy found applies. [#f2]_ See also: * `Certificate Authority Authorization (CAA)`_ at Let's Encrypt * `RFC 6844`_ (CAA) * `RFC 8657`_ (ACME-CAA) .. warning:: *CAA* and *CNAME* cannot coexist for a subdomain as CNAME will delegate *CAA* as well. .. todo:: explain Certificate Transparency .. rubric:: Footnotes .. [#f1] *ISRG Root X1* is an RSA certificate. Consider using *ISRG Root X2*, ECDSA, in the future. See `Certificates`_ .. [#f2] See `Where to put the record `_ .. _support ancient versions of Android: https://letsencrypt.org/2020/12/21/extending-android-compatibility.html .. _Certificates: https://letsencrypt.org/certificates/ .. _cli.ini: https://certbot.eff.org/docs/using.html#configuration-file .. _account URI: https://letsencrypt.org/docs/account-id/ .. _Certificate Authority Authorization (CAA): https://letsencrypt.org/docs/caa/#where-to-put-the-record .. _RFC 6844: https://tools.ietf.org/html/rfc6844 .. _RFC 8657: https://tools.ietf.org/html/rfc8657 .. _RFC 8555: https://tools.ietf.org/html/rfc8555