跳到正文
>_ITDITDWeb 安全平台

术语表

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

Let's Encrypt 是一家免费的证书颁发机构(CA),签发 TLS/SSL 证书。ACME 会自动验证域名控制权,因此签发与续期都无需人工;证书有效期仅 90 天,以此强制自动化。本文讲解其原理(certbot/Caddy),以及如何避免头号事故——续期悄悄中断、导致证书过期。

发布于 2026-06-29 更新于 2026-06-29 1 分钟阅读

「我想用 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 天。这个短窗口是刻意为之的。

缩小密钥泄露的影响范围

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

让自动续期成为默认

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

所以真正的工作是监控

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

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

本站运行在 Caddy 这款 Web 服务器上,它只要把域名指向它,就会自动签发并续期 Let's Encrypt 证书(几乎没有任何证书配置)。「不必再为证书操心」正是目标所在:人工经手的地方越少,因忘记更换而导致的过期事故就越少。反之,如果你用 cron 运行 certbot,稳妥的做法是去监控那个 cron 是否真的还在运行——而不是想当然地相信它在运行。

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

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

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

接下来阅读

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 记录里。