Let’s Encrypt 是一个免费、自动化、开放的数字证书颁发机构(CA),它能为你的网站免费签发受信任的 HTTPS(SSL/TLS)证书。
官网:https://letsencrypt.org/
工作方式
[你的网站服务器]
↓
Certbot(客户端)
↓
[Let’s Encrypt 服务器(CA)]
- 你运行 certbot(客户端);
- 它向 Let’s Encrypt 发起请求,申请某个域名的证书;
- Let’s Encrypt 要求你证明你控制该域名(通过 HTTP 或 DNS);
- 验证成功后,Let’s Encrypt 签发正式证书;
- 你的服务器就能用该证书开启 HTTPS 加密访问。
你可以这样理解
- Let’s Encrypt = 免费证书的“签发机构”
- Certbot = 跟 Let’s Encrypt 打交道的“申请工具”
- 你的服务器 = 安装和使用证书的地方
证书类型
Let’s Encrypt 只发放 域名验证型证书(DV 证书),不发 OV/EV。
- ✅ 浏览器完全信任(有小锁标志)
- ✅ 可用于商业网站
- ✅ 可发单域、多域、通配符(*.example.com)证书
- ❌ 不包含公司名(不像付费 EV 证书那样显示机构名称)
有效期
- 每张证书有效期 90 天
- 可免费无限续期(推荐用 Certbot 自动续期)
- 续期完全免费
Let’s Encrypt 的结构
ISRG Root X1 ← 根证书(Root)
↓
R3 ← 中级证书(Intermediate)
↓
example.com ← 网站证书(Leaf)
在服务器上,你会看到这些文件:
privkey.pem # 私钥(你的)
cert.pem # 网站证书
chain.pem # 中级证书链
fullchain.pem # 网站证书 + 中级证书合并
通常配置:
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
浏览器连接时会自动拼出完整的信任链。
浏览器验证流程(简化)
1、网站发给浏览器:网站证书 + 中级证书
2、浏览器内部:查找内置的根证书
3、构建完整链:[Root CA] ← [Intermediate CA] ← [Website Certificate]
4、验签(公钥→签名→哈希);
5、如果链完整且未过期 → 显示 🔒;否则 → 显示 ⚠️ “证书不受信任”。