受欢迎的博客标签

泛域名 cerbot 版本号要求,及具体的实施步骤

Published

泛域名 cerbot 版本号要求,及具体的实施步骤

申请 Let's Encrypt 泛域名证书(Wildcard Certificate)需要满足特定的要求

使用条件

从 Certbot 0.22.0 开始支持 Let's Encrypt 泛域名证书。

ACME 协议版本: 必须使用 ACME v2 接口

必须使用 DNS-01 验证(即通过配置 DNS 的 TXT 记录来证明你对该域名的所有权)

具体步骤

DNS-01 验证

手动模式需要你手动登录域名解析后台(如阿里云、腾讯云、Cloudflare 等)去添加 TXT 记录。

 

DNS-01 验证工作原理

泛域名(*.example.com)包含无限种可能,可以是 a.example.com、b.example.com 甚至是 secret.payment.example.com。

Let's Encrypt 没办法知道你未来会用哪个子域名。
它也没办法去访问一个还不存在的子域名的服务器。

所以,唯一能证明你彻底拥有整个域名控制权的方法,是看你能不能控制这个域名的 DNS 解析服务器。

 

cerbot 申请 *.example.com 的证书,得到txt-token-value-123456

登录到你的域名解析商Cloudflare,添加 TXT 记录。记录的名字固定叫 _acme-challenge.example.com,内容就是那串txt-token-value-123456

 验证(Validation):cerbot查询_acme-challenge.example.com dns 记录,核对内容是否为txt-token-value-123456

泛域名证书颁发

 

 

 

step 1.

sudo certbot certonly \
  --manual \
  --preferred-challenges=dns \
  --email [email protected] \
  --agree-tos \
  -d "example.com" \
  -d "*.example.com"
注:
-d "example.com" 和 -d "*.example.com" 建议同时加上。这样申请出来的证书既能保护根域名,也能保护所有二级子域名

 

step 2.

执行命令后,Certbot 会暂停,并输出类似以下的一段提示:

Please deploy a DNS TXT record under the name:
_acme-challenge.example.com
with the following value:

txt-token-value-abcdefg123456

Before continuing, verify the TXT record has been deployed.
Press Enter to Continue

此时不要敲回车键!

step 3.配置 DNS 解析


登录你的域名托管后台。
添加一条新的解析记录:

记录类型: TXT
主机记录(Host): _acme-challenge (注意:有些平台会自动拼接后缀,填写后确保完整名称是 _acme-challenge.example.com)
记录值(Value): 填入 Certbot 屏幕上显示的那串随机字符串(例如 txt-token-value-abcdefg123456)
TTL: 建议设为最小值(如 60 秒或 120 秒),方便快速生效。

 

step 4. 检查DNS 记录是否已生效

新开一个本地终端,使用 dig 或 nslookup 工具确认 DNS 记录已在全球生效:

dig +short TXT _acme-challenge.example.com
# 或者
nslookup -q=txt _acme-challenge.example.com

step 5.验证完成

回到刚才的 Certbot 窗口,按下回车(Enter)。 如果验证成功,证书将生成在 /etc/letsencrypt/live/example.com/ 目录下

 

 

证书位置与续期


成功后,你会得到 4 个核心文件,保存在 /etc/letsencrypt/live/yourdomain.com/:

fullchain.pem:证书主体(Nginx 配置中 ssl_certificate 填这个)
privkey.pem:证书私钥(Nginx 配置中 ssl_certificate_key 填这个)