Title here
Summary here
当你执行一次证书申请(certbot certonly 或带插件的命令)时,本质是:
向证书颁发机构(CA)申请证书
Certbot 默认对接的是 Let’s Encrypt(也可以对接其他 CA)。
证明"这个域名是你的",让 CA 信任你有权申请这个域名的证书。
这是核心步骤,叫 域名所有权验证(Domain Validation, DV)
Let’s Encrypt 会要求你完成一个挑战(challenge),常见两种:
验证成功后签发证书
验证通过后:
/etc/letsencrypt/live/域名/后续自动续期
Certbot 会:
| 方式 | 是否需要端口 | 是否支持通配符 | 是否推荐 |
|---|---|---|---|
| HTTP-01 | tcp:80 | 不支持 | 推荐(简单) |
| DNS-01 | 不需要 | 支持 | 推荐(强大) |
| TLS-ALPN-01 | tcp:443 | 不支持 | 不推荐(复杂) |
一次完整申请可以理解为:
1. Certbot 发起申请
2. 生成验证 token
3. 部署验证(HTTP 或 DNS)
4. Let’s Encrypt 验证
5. 签发证书
6. 保存到本地
7. 设置自动续期使用 snap 安装:
| |
把 /snap/bin 加入全局 PATH
| |
如果你用的是 root(你现在就是),也可以写到:
| |
检查
| |
正常应该输出:
/snap/bin/certbot如果你打算使用 DNS-01 验证方式 ,请执行下面的命令安装插件.
snap set certbot trust-plugin-with-root=ok
snap install certbot-dns-cloudflareTip
snap set certbot trust-plugin-with-root=ok 命令做了什么?
相当于告诉系统:
“我信任 Certbot 插件,可以让它们用 root 权限运行”
本质是:解除 snap 对插件的权限限制,让 DNS 插件能正常工作,用 DNS 插件必须执行.