Certbot 证书管理工具 · 文档集
面向 Linux 服务器 场景的 Certbot / Let's Encrypt 使用文档,用于速查、学习、回顾与教学。 全文假设你有 root 或 sudo 权限,域名已解析到服务器公网 IP。
这份文档是什么
Certbot 是 EFF(电子前哨基金会)维护的免费 ACME 客户端,用来向 Let's Encrypt 免费申请、安装、续期 HTTPS/TLS 证书。本文档集把 Certbot 在 Linux 服务器上的用法拆成 8 份,按主题速查。
| # | 文档 | 内容 | 适合场景 |
|---|---|---|---|
| 1 | 概念与原理 | Let's Encrypt / ACME / 证书链 / 验证方式 / 90 天续期 | 入门学习、教学 |
| 2 | 安装 | snap / apt / dnf / pip 各发行版安装、注册账号 | 首次部署 |
| 3 | 命令速查 | 子命令与常用选项速查表、高频命令 | 日常速查 |
| 4 | 插件与验证方式 | HTTP-01 / DNS-01 / TLS-ALPN-01、nginx/apache/webroot/standalone/dns 插件 | 选型、深入学习 |
| 5 | 实战场景 | Nginx/Apache HTTPS、通配符、多域名、仅签发 | 照做部署 |
| 6 | 续期与自动化 | renew 原理、systemd/cron、hooks、dry-run | 上线后维护 |
| 7 | 配置与文件布局 | /etc/letsencrypt 目录、renewal 配置、cli.ini | 排错与定制 |
| 8 | 排错与最佳实践 | 常见错误、限速、安全加固、备份迁移 | 故障处理 |
一分钟快速上手(TL;DR)
bash
# 1. 安装(Debian/Ubuntu 示例,推荐 snap;apt 也可用)
sudo apt update && sudo apt install -y certbot python3-certbot-nginx
# 2. 一键签发并自动配置 Nginx(含 HTTP→HTTPS 跳转)
sudo certbot --nginx -d example.com -d www.example.com
# 3. 验证自动续期是否已就绪
sudo systemctl status certbot.timer
sudo certbot renew --dry-run
# 4. 查看已签发的证书
sudo certbot certificates- 证书默认落在
/etc/letsencrypt/live/<域名>/,其中fullchain.pem(证书链)和privkey.pem(私钥)是配到 Nginx/Apache 的两个文件。 - 证书有效期 90 天,
certbot renew会在到期前 30 天内续期;系统自带的 timer/cron 一般已自动处理。
核心要点速记
- 免费证书有效期 90 天,靠
certbot renew自动滚动续期,不续期会过期。 - 验证方式:
HTTP-01(走 80 端口)、DNS-01(走 TXT 记录,唯一支持通配符)、TLS-ALPN-01(走 443 端口,不占 80)。 - 插件决定"怎么验证"和"怎么装":
--nginx/--apache全自动;--webroot/--standalone只签发;--manual --preferred-challenges dns手动 DNS。 - 限速要心里有数:同一组域名每周重复签发有上限、验证失败按小时限速,测试用
--dry-run或 staging 环境。
参考链接
- 官方安装指引:https://certbot.eff.org/instructions(选择发行版 + Web 服务器)
- 官方文档(完整命令与选项):https://eff-certbot.readthedocs.io/
- Let's Encrypt 限速说明:https://letsencrypt.org/docs/rate-limits/
- Let's Encrypt 官方:https://letsencrypt.org/
