Chain of trust ISRG Root X1 (RSA) In June 2015, Let's Encrypt announced the generation of their first
RSA root certificate, ISRG Root X1. The root certificate was used to sign two
intermediate certificates,
ACME protocol The
challenge–response protocol used to automate enrolling with the certificate authority is called
Automatic Certificate Management Environment (ACME). It can query either Web servers or DNS servers controlled by the domain covered by the certificate to be issued. Based on whether the resulting responses match the expectations, control of the enrollee over the domain is assured (domain validation). The ACME
client software can set up a dedicated TLS server that gets queried by the ACME certificate authority server with requests using
Server Name Indication (Domain Validation using Server Name Indication, DVSNI), or it can use
hooks to publish responses to existing Web and DNS servers. The validation processes are run multiple times over separate network paths. Checking whether DNS entries are provisioned is done from multiple geographically diverse locations to make
DNS spoofing attacks harder to carry out. ACME interactions are based on exchanging
JSON documents over HTTPS connections. Prior to the completion and publication of RFC 8555, Let's Encrypt implemented a pre-standard draft of the ACME protocol. RFC 8555 introduced breaking changes and as such it has been dubbed ACMEv2. Let's Encrypt implemented the new version and started pushing existing clients into upgrades. The nudging was implemented with intermittent down-times of the ACMEv1 API. The end-of-lifetime was announced with dates and phases in "End of Life Plan for ACMEv1". Since November 8, 2019, ACMEv1 no longer accepts new account registrations. Since June 2020, ACMEv1 stopped accepting new domain validations. From January 2021, ACMEv1 underwent 24-hour
brownouts. The ACMEv1 API was turned off completely on June 1, 2021.
Software implementation The certificate authority consists of a piece of software called Boulder, written in
Go, that implements the server side of the
ACME protocol. It is published as
free software with
source code under the terms of version 2 of the
Mozilla Public License (MPL). Initially, Let's Encrypt developed its own ACME client – Certbot – as an official implementation. This has been transferred to
Electronic Frontier Foundation and its name "letsencrypt" has been changed to "certbot". There is a large selection of ACME clients and projects for a number of environments developed by the community. == See also ==