基于 DNS-01 验证的通配符 SSL 证书申请流程

2025.11.10 杂七杂八 1824
33BLOG智能摘要
你是否还在为每个子域名单独配置 SSL 证书而焦头烂额?通配符证书或许是你的终极解决方案,但如何让它真正“一键部署、自动续期”?本文揭秘基于 DNS-01 验证的通配符 SSL 证书实战全流程,手把手带你用 Let's Encrypt 和 Certbot 实现全自动申请与更新。不同于复杂的 HTTP 验证,DNS-01 方式能穿透内网、绕过防火墙,特别适合多子域名和复杂网络环境。但配置过程中的 API 权限、文件权限、DNS 传播延迟等问题,往往让人卡在最后一步。我将分享亲身踩过的坑:从 Cloudflare API 凭证的安全设置,到 TXT 记录的手动验证命令,再到自动续期的定时任务配置,每一个细节都关乎成败。更关键的是,如何通过一次配置,实现长期免维护的证书自动轮换?如果你希望彻底告别 90 天手动续签的噩梦,掌握这套高可用、可复用的自动化方案,这篇文章就是为你准备的终极指南。
— 此摘要由33BLOG基于AI分析文章内容生成,仅供参考。

基于 DNS-01 验证的通配符 SSL 证书申请实战指南

基于 DNS-01 验证的通配符 SSL 证书申请流程

作为一名长期与服务器打交道的技术博主,我深知 SSL 证书对于网站安全的重要性。特别是在需要保护多个子域名时,通配符 SSL 证书无疑是最经济高效的选择。今天,我将分享基于 DNS-01 验证方式的通配符证书申请全流程,这些都是我在实际部署中积累的宝贵经验。

准备工作与环境配置

在开始申请之前,我们需要确保环境准备就绪。我推荐使用 Let’s Encrypt 的免费证书,配合 Certbot 工具进行操作。首先安装必要的软件包:

# Ubuntu/Debian 系统
sudo apt update
sudo apt install certbot python3-certbot-dns-cloudflare

# CentOS/RHEL 系统  
sudo yum install certbot python3-certbot-dns-cloudflare

这里我选择了 Cloudflare 的 DNS 插件,如果你使用其他 DNS 服务商,需要安装对应的插件。在实际操作中,我发现提前配置好 DNS API 凭证能大大简化流程。

配置 DNS API 凭证

为了让 Certbot 能够自动添加 DNS 记录,我们需要配置 API 凭证。以 Cloudflare 为例,创建凭证文件:

mkdir -p ~/.secrets/certbot
echo "dns_cloudflare_api_token = YOUR_API_TOKEN" > ~/.secrets/certbot/cloudflare.ini
chmod 600 ~/.secrets/certbot/cloudflare.ini

踩坑提示:务必设置正确的文件权限(600),否则 Certbot 会因为安全原因拒绝读取凭证文件。这个细节我在第一次部署时就忽略了,导致排查了很长时间。

执行证书申请命令

现在来到最关键的一步——执行证书申请。通配符证书需要使用 DNS-01 验证方式,命令如下:

sudo certbot certonly 
  --dns-cloudflare 
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini 
  -d "*.yourdomain.com" 
  -d "yourdomain.com" 
  --preferred-challenges dns-01

这里我同时申请了通配符证书(*.yourdomain.com)和根域名证书(yourdomain.com),这样既能保护所有子域名,也能确保根域名的安全。

验证与故障排查

申请过程中,Certbot 会自动在 DNS 中添加 TXT 记录进行验证。如果遇到问题,我最常用的排查方法是:

# 手动验证 DNS 记录是否生效
dig -t TXT _acme-challenge.yourdomain.com

有时候 DNS 传播需要几分钟时间,耐心等待是关键。如果长时间不生效,检查 API 权限是否正确配置。

证书自动续期配置

Let’s Encrypt 证书有效期为 90 天,设置自动续期至关重要:

# 测试续期命令
sudo certbot renew --dry-run

# 设置定时任务
echo "0 12 * * * /usr/bin/certbot renew --quiet" | sudo tee -a /etc/crontab

我建议每月执行一次续期检查,这样即使某次续期失败,也有充足的时间进行手动处理。

实战经验总结

通过多次部署,我总结出几个重要经验:首先,一定要备份原始的证书和密钥文件;其次,在生产环境部署前,先在测试环境完整走一遍流程;最后,监控证书到期时间,设置多个提醒渠道。

DNS-01 验证方式虽然配置稍复杂,但一旦设置完成,后续的维护工作就变得十分轻松。特别是对于拥有大量子域名的场景,这种一次配置、长期受益的方式确实值得投入。

评论