Certbot 证书申请本质在做什么?

当你执行一次证书申请(certbot certonly 或带插件的命令)时,本质是:

  1. 向证书颁发机构(CA)申请证书

    Certbot 默认对接的是 Let’s Encrypt(也可以对接其他 CA)。

  2. 证明"这个域名是你的",让 CA 信任你有权申请这个域名的证书。

    这是核心步骤,叫 域名所有权验证(Domain Validation, DV)

    Let’s Encrypt 会要求你完成一个挑战(challenge),常见两种:

    • HTTP-01(最常见)
    • DNS-01(最强大)
    • TLS-ALPN-01(较少用)
  3. 验证成功后签发证书

    验证通过后:

    • CA 签发证书
    • 证书存储在 /etc/letsencrypt/live/域名/
  4. 后续自动续期

    Certbot 会:

    • 自动续期(通常 60 天前)
    • 通过 hook 或自动 reload 服务

三种方式对比

方式是否需要端口是否支持通配符是否推荐
HTTP-01tcp:80不支持推荐(简单)
DNS-01不需要支持推荐(强大)
TLS-ALPN-01tcp:443不支持不推荐(复杂)

完整申请流程总结(重点)

一次完整申请可以理解为:

1. Certbot 发起申请
2. 生成验证 token
3. 部署验证(HTTP 或 DNS)
4. Let’s Encrypt 验证
5. 签发证书
6. 保存到本地
7. 设置自动续期

安装Certbot

不同系统安装方式不同,以下是Debian的安装方法:

优点