术语表

什么是 Let's Encrypt——让 HTTPS 自动化的免费证书颁发机构

Let's Encrypt 是免费签发 TLS/SSL 证书的颁发机构,通过 ACME 自动验证域名并签发和续期,证书有效期 90 天。讲解原理(certbot/Caddy)以及如何监控续期、避免证书过期。

发布于 2026-06-29 更新于 2026-10-06 4 分钟阅读
本页目录

过去,用 HTTPS 意味着又贵又麻烦的证书。Let's Encrypt 改变了这一点:它是免费的,而且从签发到续期都可以完全自动化。下面从防御者的视角讲解它的工作原理。

工作原理:自动证明域名控制权(ACME)

传统证书意味着提交申请、递交身份材料、然后等待——全靠人工。Let's Encrypt 用 **ACME(Automatic Certificate Management Environment,自动证书管理环境)**取代了这一切,这套协议把整个交互过程变成机器对机器的步骤。

1. 挑战(Challenge):CA 说「如果你控制着这个域名,就把这个值放到指定的位置」
2. 证明(Prove):服务器把该值放到某个 Web 路径下(HTTP-01)或一条 DNS 记录里(DNS-01)
3. 签发(Issue):验证通过后,CA 签发证书。临近到期时,第 2–3 步会自动重复
ACME 的基本流程:你的服务器当场证明它控制着该域名,并自动获得证书。

关键在于:它只验证对域名的控制权(域名验证,DV),并不审核企业的法律存在,正因如此整个流程才够轻量、可以完全自动化。而加密本身丝毫不比付费证书弱。

90 天有效期,是因为续期本就应该自动进行

Let's Encrypt 证书的有效期为 90 天。这个短窗口是刻意为之的。

1

限制密钥泄露造成的损害

万一服务器的私钥泄露,短有效期证书就缩短了它可被滥用的期间——即便吊销有所延迟,它也会自行过期。

2

让自动续期成为默认

90 天用手工续期并不现实,因此运维人员不得不自动化——这把整个行业推向了「证书是要自动轮换的东西」这一观念。实践中,续期工具会在到期前约 30 天开始尝试。

3

所以真正的工作是监控

自动续期可能会在无人察觉的情况下停掉:cron 坏了、权限变了、域名校验不再通过。如果你没察觉,90 天后它就过期了。防御性的习惯是监控续期是否成功以及剩余天数。

本站之见:我们自己就这么用(自动 TLS)

本站运行在 Caddy 这款 Web 服务器上,它只要把域名指向它,就会自动签发并续期 Let's Encrypt 证书(几乎没有任何证书配置)。「不必再为证书操心」正是目标所在:人工经手的地方越少,因忘记更换而导致的过期事故就越少。

反之,如果你用 cron 运行 certbot,稳妥的做法是去监控那个 cron 是否真的还在运行,而不是想当然地相信它在运行。

有效期正在缩短(截至 2026 年 10 月的时间表)

如今的标准是 90 天,但 Let's Encrypt 已宣布将分阶段缩短有效期。由浏览器厂商和证书颁发机构组成的行业组织 CA/Browser Forum 也已决定,从 2026 年 3 月起分阶段缩短浏览器信任的证书的最长有效期,到 2029 年 3 月缩短至 47 天。

时间变化
截至 2026 年 10 月有效期 90 天
2026 年 5 月 13 日起可选用的 tlsserver 配置文件提供 45 天证书
2027 年 2 月 10 日起默认(classic 配置文件)改为 64 天;域名验证结果的复用期缩短为 10 天
2028 年 2 月 16 日起默认改为 45 天;域名验证结果的复用期缩短为 7 小时

有效期约六天(160 小时)的 shortlived 配置文件也已于 2026 年 1 月正式提供。IP 地址证书只以这种短期证书的形式签发。

实务上的要点:不要把续期间隔写死成「每 60 天」之类。Let's Encrypt 推荐使用支持 ARI(ACME Renewal Information,由 CA 告诉客户端何时续期)的客户端;没有 ARI 时,在有效期过去三分之二时续期。按固定天数运行的 cron 任务,一旦有效期缩短就会开始导致过期。

2025 年结束的服务:OCSP 和到期提醒邮件

Let's Encrypt 在 2025 年停止了两项服务。如果你参照的是较早的文章或配置,请留意。

  • OCSP(每次检查证书是否已被吊销):2025 年 5 月 7 日从证书中移除了 OCSP URL,8 月 6 日关闭了响应服务器。吊销检查现在依靠 CRL(已吊销证书的列表)。原因之一是隐私:使用 OCSP 时,CA 可以得知哪个 IP 地址在访问哪个网站。
  • 到期提醒邮件:于 2025 年 6 月 4 日停止。以前临近到期时会收到邮件,现在不会了。你需要自己监控到期情况。

头号事故:续期中断,随后过期

HTTPS 上最常见的问题并不是攻击,而是证书过期。一旦过期,浏览器会弹出整页警告,访客几乎都会离开。原因几乎总是「续期自动化坏掉了,却没人察觉」。

正因如此,你应该有一种办法来定期查看自己证书的有效期。本站的网站安全审计会在你已验证归属的网站上检查 TLS 证书(剩余天数、到期时间、过时的协议),与其他检查项一并进行。先把续期自动化,再从外部验证这套自动化是否仍在运行。两个习惯结合起来,几乎能完全杜绝过期事故。

域名验证方式(挑战)的比较

ACME 提供三种证明域名控制权的方式。选择适合你环境的那一种。

方式放置什么通配符证书适合的场景
HTTP-01在 Web 服务器的固定路径下放置一个文件不可以可通过 80 端口访问的普通 Web 服务器
DNS-01DNS 中的一条 TXT 记录可以需要 *.example.com,或服务器无法从外部访问
TLS-ALPN-01在 443 端口的 TLS 连接上作出响应不可以大型托管服务商和反向代理

把 DNS-01 自动化,意味着要在服务器上保存 DNS 的 API 密钥。一旦该密钥泄露,他人就能修改你域名的记录,所以要选择能把密钥权限限定于 TXT 记录的 DNS 服务商,并尽量减少存放密钥的地方。

如何检查自己的网站

1

在浏览器中查看颁发者和到期日期

从地址栏的锁形图标打开证书,查看颁发者组织和到期日期。如果组织是 Let's Encrypt,本页内容就适用于你。
2

确认续期真的在运行

使用 certbot 时,certbot certificates 显示到期日期,certbot renew --dry-run 测试续期。在 systemd 主机上,确认 systemctl list-timers 中出现了 certbot 的定时器。Caddy 会在日志中记录证书的签发和续期。
3

查找不是你申请的证书

浏览器信任的证书都会记录在公开的证书透明度(CT)日志中。在 crt.sh 等 CT 搜索中搜索你的域名,可以看到是否签发过你不认识的证书。
4

限制可以为你签发证书的 CA

DNS 中的 CAA 记录可以指定允许为你的域名签发证书的证书颁发机构。如果你只使用 Let's Encrypt,就只允许 Let's Encrypt。
5

从外部监控剩余天数

到期提醒邮件已经停止,所以需要定期从外部检查剩余天数。本站的网站安全审计也会检查剩余天数和过时的协议。

案例:2021 年的根证书到期

证书通过一条以受信任的根证书为终点的链来验证。Let's Encrypt 的证书最初是通过另一家 CA 的根证书(DST Root CA X3)获得信任的,而这个根证书于 2021 年 9 月 30 日到期。

从那天起,不信任 Let's Encrypt 自己的根证书(ISRG Root X1)的旧设备和旧软件,在使用 Let's Encrypt 的网站上开始显示证书警告(较旧的 Android 设备由于一项特殊安排仍可正常使用)。网站的证书本身已正确续期,但使用旧设备的用户却无法再连接。

如果你运营着有旧设备连接的 API 或系统,请关注 Let's Encrypt 的公告,为中间证书和根证书的变更做好准备。Let's Encrypt 建议不要在配置中写死中间证书,而是使用 ACME 客户端收到的证书链。

接下来阅读

出处(一手资料)

  • Let's Encrypt 官方博客(2025 年 12 月 2 日,将有效期缩短至 45 天的计划) — letsencrypt.org(改为 64 天和 45 天的日期、验证结果的复用期、推荐 ARI)
  • Let's Encrypt 官方博客(2026 年 1 月 15 日,六天证书和 IP 地址证书正式提供) — letsencrypt.org
  • Let's Encrypt 官方博客(2024 年 12 月 5 日,结束 OCSP) — letsencrypt.org(移除 OCSP URL 和关闭响应服务器的日期)
  • Let's Encrypt 官方博客(2025 年 1 月 22 日,结束到期提醒邮件) — letsencrypt.org
  • Let's Encrypt,“Challenge Types” — letsencrypt.org
  • Let's Encrypt,“Integration Guide” — letsencrypt.org(续期时机、不要写死中间证书)
  • Let's Encrypt,“DST Root CA X3 Expiration (September 2021)” — letsencrypt.org
  • CA/Browser Forum,“Ballot SC081v3”(2025 年 4 月 11 日通过) — cabforum.org(公开证书的最长有效期于 2029 年 3 月缩短至 47 天)

FAQ

QLet's Encrypt 真的免费吗?它和付费证书有什么区别?
A

签发与续期都是免费的。Let's Encrypt 只做域名验证(DV)——自动确认你控制着该域名。加密强度与付费证书完全相同,浏览器显示的也是同样的锁形图标。区别在于它没有审核企业法律身份的组织验证/扩展验证(OV/EV)环节,也没有保险赔付。对于个人网站和小型服务,一张免费的 DV 证书几乎总是足以支撑 HTTPS。

Q为什么证书只有 90 天有效期?这不是很麻烦吗?
A

短有效期是一种设计选择,而非弱点。它限制了泄露的私钥被滥用的时长,并促成了一种把续期自动化的文化。要避免麻烦,就把续期自动化(多数工具会在到期前约 30 天起自动续期)。更大的风险恰恰相反:每年手动更换一次证书,然后忘记、任由它过期。

Q用什么工具来配置?
A

常见的有 certbot(与 Apache/Nginx 搭配使用广泛)和 Caddy(一款 Web 服务器,无需任何证书配置即可提供 HTTPS 并自动续期)。acme.sh 和 Traefik 也支持 ACME。如果你需要通配符证书(*.example.com),则通过 DNS-01 方式获取,把验证值放进 DNS 记录里。

Q怎样查看我的 Let's Encrypt 证书何时到期?
A

从浏览器地址栏的锁形图标打开证书,可以看到到期日期和颁发者。在服务器上,certbot certificates 会列出你的证书及其到期日期。Let's Encrypt 已于 2025 年 6 月停止发送到期提醒邮件,所以要设置一个定期从外部检查剩余天数的机制。

Q证书什么时候变成 45 天?
A

据 Let's Encrypt 称,默认证书将从 2027 年 2 月 10 日起变为 64 天,从 2028 年 2 月 16 日起变为 45 天。自 2026 年 5 月 13 日起,可以通过 tlsserver 配置文件提前选用 45 天证书。使用支持 ARI(由 CA 告诉客户端何时续期)的 ACME 客户端,或者在有效期过去三分之二时续期,有效期缩短就不会造成问题。

QOCSP 结束了,我需要做什么吗?
A

对于一般网站,不需要。Let's Encrypt 于 2025 年 5 月从证书中移除了 OCSP URL,8 月关闭了响应服务器,并把吊销检查转为 CRL。如果你的配置请求了 OCSP Must-Staple,或者运行着依赖 OCSP URL 的自定义客户端,请复查这些设置。