What is lencr.org, and is it malware?
Short answer
No, lencr.org isn’t malware. It’s Let’s Encrypt’s own domain. Let’s Encrypt is the free certificate authority, and in its own words, “the data on lencr.org is never malicious.”
ye.c.lencr.org and yr.c.lencr.org serve Let’s Encrypt’s lists of revoked certificates (CRLs). Addresses ending in .i.lencr.org serve issuer certificates. These requests don’t prove the website being checked is safe.
What to do: don’t block lencr.org for this traffic alone. If something blocks it, allow outbound HTTP on port 80 to lencr.org and its subdomains. To judge the website, look at the connection just before the lencr.org one.
Run your own sites on Let’s Encrypt? It stopped emailing before certificates expire in June 2025. Expiry Watch does it for free, for up to 10 domains. Watch a domain
Why your device contacted it
Something on your network checked a certificate issued by Let’s Encrypt, and needed one of the two files that certificate points to:
- The certificate that signed it, from an
.iaddress, when a website didn’t send its full chain. Browsers fill that gap themselves, as Mozilla describes; most command-line tools don’t. Fix “unable to get local issuer certificate” explains why that matters. - The list of revoked certificates, from a
.caddress, when the software checks that the certificate hasn’t been cancelled.
It may not be the device you were using. Firewalls and proxies that inspect encrypted traffic check certificates for everyone behind them, so they make these requests themselves.
To find the website, look at the connection that started just before the one to lencr.org. That is Let’s Encrypt’s own advice: “focus on the connection that started just before the connection to lencr.org”.
The lencr.org request doesn’t vouch for that website. It shows only that something checked a certificate Let’s Encrypt issued, and Let’s Encrypt can’t say whether the site behind it is malicious. If the site worries you, investigate that earlier connection, not lencr.org.
If a firewall or DNS filter blocks it
Certificate traffic to lencr.org is no reason on its own to block it. Blocking it can keep devices and apps from downloading the issuer certificates and revocation lists served there, which can slow connections down or make them fail. How much depends on the client and what it has cached: Let’s Encrypt’s lencr.org page says a client may never fetch this data, may fetch only part of it, and may keep a copy until it expires.
- Allow outbound HTTP to
lencr.organd all its subdomains, on port 80. Devices on your network fetch these files, so the rule is for traffic going out; a DNS filter needs the same names allowed. A rule for one address, such asr10.c.lencr.org, breaks again when the names change, as they did with Generation Y. - Don’t allow HTTPS only. Certificates list these addresses as
http://. - If a security product flagged lencr.org itself, report the false alarm to the vendor, and tell Let’s Encrypt on its community forum. Its staff have contacted vendors before.
Getting or renewing your own certificates needs different rules. Let’s Encrypt’s Integration Guide says your ACME client, such as Certbot, needs outbound HTTPS on port 443, that the HTTP-01 challenge needs port 80 open inbound, and that Let’s Encrypt’s validation requests come from addresses it doesn’t publish, which change without notice. An inbound rule that admits only lencr.org doesn’t cover them, so it can make renewals fail. Certbot renew failed explains the connection error that follows.
It has been flagged before
Security products and blocklists have mistaken lencr.org for a threat several times. Every time, it was a false alarm:
- June 2021:
r3.o.lencr.org, then the OCSP responder for most Let’s Encrypt certificates, appeared on an ad-blocking DNS list (the Mahakala list). - August 2021: WatchGuard flagged
x1.c.lencr.orgas a compromised website. WatchGuard confirmed it was a false positive. - May 2024: ESET NOD32 flagged
x2.c.lencr.orgas malicious. Let’s Encrypt staff replied that “that is a false alarm” and said they would report it to ESET. - July 2025: a Zyxel firewall blocked a revocation list,
http://r10.c.lencr.org/76.crl, through its threat filtering.
What each address serves
The middle part of the name says what kind of file an address serves, and the first part names the certificate it belongs to. We requested each of these on October 20, 2026:
| Addresses | What they serve | Examples |
|---|---|---|
*.i.lencr.org |
One certificate: the one that signed yours (“CA Issuers”) | yr1.i, ye2.i, yr.i, x2.i |
*.c.lencr.org |
Lists of revoked certificates (CRLs) | ye2.c, yr.c, x1.c |
*.o.lencr.org |
OCSP answers, until August 6, 2025 | r3.o, r10.o, e5.o |
.iaddresses answer with a certificate file (application/pkix-cert). The first part names it:ye1toye3andyr1toyr3are the Generation Y intermediates,yeandyrare Root YE and Root YR cross-signed by an ISRG root,x1is ISRG Root X1, andx2is ISRG Root X2 cross-signed by X1..caddresses answer with a revocation list (application/pkix-crl). Each root’s list sits at/, as atx1.c.lencr.org. An intermediate’s list is split into numbered files, such asye2.c.lencr.org/96.crl..oaddresses were the OCSP responders, which answered “is this certificate revoked?” one certificate at a time. None ofr3.o,r10.o,e5.ooro.lencr.orgresolves in DNS any more.
The ye and yr names belong to Generation Y, the hierarchy Let’s Encrypt now issues from: intermediates YE1 and YE2 (ECDSA keys) and YR1 and YR2 (RSA keys), valid until September 2, 2028, with YE3 and YR3 as backups (Let’s Encrypt’s certificate list). The older R10 to R14 and E5 to E9 intermediates are listed there as retired, though r12.i, e7.i and the rest still serve their files. Let’s Encrypt YE1 and YR1 certificates has each one’s official download and fingerprint, and Let’s Encrypt YE1 and YR1 chain errors covers what the new hierarchy changes for servers.
The OCSP addresses went quiet on schedule. Let’s Encrypt stopped putting OCSP addresses in certificates on May 7, 2025 and turned the responders off on August 6, 2025. Lookups of an .o name in your DNS logs today come from software that still expects them; nothing answers.
Why it uses plain HTTP
Certificate traffic over unencrypted HTTP looks wrong, but the rules require it. The CA/Browser Forum Baseline Requirements (version 2.3.1), which every publicly trusted certificate authority follows, say:
- Revocation lists: “the scheme of each MUST be
http” (section 7.1.2.11.2). - The certificate that signed yours: “A HTTP URL of the Issuing CA’s certificate” (section 7.1.2.7.7).
HTTPS would also be circular: to fetch a file over HTTPS, the client would first have to check another certificate, possibly with the same files. And encryption isn’t needed to keep the files honest. A certificate is signed by its issuer, and a revocation list is “a time-stamped list identifying revoked certificates that is signed by a CA” (RFC 5280, section 3.3), so a file changed on the way fails its signature check and is rejected.
Check it yourself
Every Let’s Encrypt certificate carries its two lencr.org addresses. You can read them from any site that uses one:
echo | openssl s_client -connect letsencrypt.org:443 \
-servername letsencrypt.org 2>/dev/null \
| openssl x509 -noout -ext authorityInfoAccess,crlDistributionPoints
Authority Information Access:
CA Issuers - URI:http://ye2.i.lencr.org/
X509v3 CRL Distribution Points:
Full Name:
URI:http://ye2.c.lencr.org/96.crl
- CA Issuers is where to download the certificate that signed this one, here the intermediate YE2.
- CRL Distribution Points is where to download the list of certificates YE2 has revoked.
On macOS’s built-in openssl (LibreSSL), which lacks -ext, use openssl x509 -noout -text and look for the same two headings.
You don’t have to take anyone’s word for what an address serves, either. This downloads the YR1 certificate from lencr.org and prints who it is for, who signed it and its SHA-256 fingerprint:
curl -s http://yr1.i.lencr.org/ \
| openssl x509 -inform der -noout \
-subject -issuer -fingerprint -sha256
subject=C=US, O=Let's Encrypt, CN=YR1
issuer=C=US, O=ISRG, CN=Root YR
sha256 Fingerprint=13:94:96:34:D9:9C:D6:FD:6A:A8:0B:C0:34:FE:FA:CC:EB:19:69:FE:EF:98:65:86:71:3E:CD:BB:05:75:8D:3F
Then fetch the copy that Let’s Encrypt’s certificate list links to, over HTTPS, and compare. The fingerprints match:
curl -s https://letsencrypt.org/certs/gen-y/int-yr1.pem \
| openssl x509 -noout -fingerprint -sha256
sha256 Fingerprint=13:94:96:34:D9:9C:D6:FD:6A:A8:0B:C0:34:FE:FA:CC:EB:19:69:FE:EF:98:65:86:71:3E:CD:BB:05:75:8D:3F
A revocation list can be checked against the key that signed it. This verifies Root YE’s list with the Root YE certificate from letsencrypt.org:
curl -s -o ye.crl http://ye.c.lencr.org/
curl -s -o root-ye.pem https://letsencrypt.org/certs/gen-y/root-ye.pem
openssl crl -inform der -in ye.crl -CAfile root-ye.pem \
-noout -issuer -nextupdate
verify OK
issuer=C=US, O=ISRG, CN=Root YE
nextUpdate=May 11 23:59:59 2027 GMT
Any other file from an .i address works the same way: swap yr1 for the address’s first part and find the matching file on the certificate list. The certificate chain checker shows which of these addresses a site’s own chain relies on.
Sources
The earlier sources were checked on October 20, 2026. Let’s Encrypt’s lencr.org page was checked again on October 27, 2026, and the Integration Guide was added and checked that day. The lencr.org page and the Root YE and Root YR entries in Chains of Trust were checked again on October 31, 2026. The address list, content types and command output come from our own requests on October 20.
- lencr.org, Let’s Encrypt documentation, last updated July 31, 2025: what the domain is for, that Let’s Encrypt can’t say whether the site behind a request is malicious, and how to trace a request.
- Integration Guide, Firewall Configuration, Let’s Encrypt documentation, last updated June 23, 2025: the ports an ACME client and the HTTP-01 challenge need, and that validation addresses aren’t published.
- Chains of Trust, Let’s Encrypt, last updated July 8, 2026: the Generation Y intermediates and roots, retired intermediates, and the certificate files used for comparison.
- Ending OCSP Support in 2025, Let’s Encrypt, December 5, 2024, and OCSP service has reached end of life, August 6, 2025.
- Ending Expiration Notification Emails, Let’s Encrypt, January 22, 2025: the end of expiry emails, switched off on June 4, 2025.
- Baseline Requirements for the Issuance and Management of Publicly-Trusted TLS Server Certificates, CA/Browser Forum, version 2.3.1, sections 7.1.2.7.7 and 7.1.2.11.2: HTTP addresses for issuer certificates and CRLs.
- RFC 5280, section 3.3, IETF: CRLs are signed by the CA.
- Intermediate Preloading, Mozilla Wiki: how browsers fill in missing intermediates.
- Let’s Encrypt Community Support threads on false alarms: r3.o.lencr.org (June 5, 2021), WatchGuard (August 3, 2021), ESET NOD32 (May 22, 2024) and Zyxel (July 17, 2025).