You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

借助Let's Encrypt与DDNS实现SSL证书部署的问题求助

解决主域名+通配符域名的Let's Encrypt SSL证书续期问题

针对你的场景,以下是几个可行的解决方案,按推荐优先级排序:

1. 使用DNS-01挑战申请包含主域名的通配符证书

Let's Encrypt的DNS-01验证方式不需要域名解析指向你的服务器,仅需你能在域名的DNS记录中添加临时TXT记录完成所有权验证,完美适配主域名做帧转发的场景,且续期完全自动化。

操作步骤:

  • 确认你的域名注册商/服务商提供DNS API接口(主流服务商如阿里云、Cloudflare、Namecheap等均支持)
  • 安装Certbot对应服务商的DNS插件,比如针对Cloudflare的certbot-dns-cloudflare、针对阿里云的certbot-dns-alidns
  • 配置API密钥文件(如cloudflare.ini),写入服务商提供的API凭证,设置文件权限为chmod 600 /path/to/cloudflare.ini避免泄露
  • 执行证书申请命令:
    certbot certonly --dns-cloudflare --dns-cloudflare-credentials /path/to/cloudflare.ini -d yourdomain.com -d *.yourdomain.com
    
  • 证书续期时,Certbot会自动调用API添加验证用的TXT记录,验证完成后自动删除,全程无需手动干预,也不影响主域名的帧转发设置

2. 将主域名DNS解析权转移到支持DDNS的服务商

如果你的DDNS服务商支持完整的域名托管(即允许修改NS记录),可以把主域名的NS服务器切换到该DDNS服务商,让主域名和通配符域名一起享受自动IP更新。

操作步骤:

  • 在DDNS服务商后台添加你的主域名,获取该服务商提供的NS服务器地址
  • 登录域名注册商后台,将主域名的NS记录修改为DDNS服务商提供的地址(生效时间可能需要几小时到24小时)
  • 待DNS生效后,直接用HTTP-01挑战申请证书:
    certbot certonly --nginx -d yourdomain.com -d *.yourdomain.com
    
  • 后续DDNS会自动更新主域名和通配符域名的IP,Certbot续期时通过HTTP-01验证(服务器上的Nginx需配置对应域名的站点)即可自动完成,无需手动操作

3. 用脚本自动化临时切换主域名解析(适合不愿转移NS的场景)

如果不想转移主域名的NS,可以编写脚本在证书续期前后临时修改主域名的A记录指向你的公网IP,续期完成后再改回帧转发设置。

操作步骤:

  • 利用域名服务商的API编写两个脚本:pre-renew.sh(修改主域名A记录到当前公网IP)和post-renew.sh(改回原解析/帧转发设置)
  • 配置Certbot使用钩子脚本:
    certbot renew --pre-hook "/path/to/pre-renew.sh" --post-hook "/path/to/post-renew.sh"
    
  • 把续期命令加入crontab,实现自动执行:
    0 3 * * * /usr/bin/certbot renew --pre-hook "/path/to/pre-renew.sh" --post-hook "/path/to/post-renew.sh" >> /var/log/certbot-renew.log 2>&1
    
  • 注意:脚本需要处理公网IP获取(比如curl ifconfig.me),以及调用API修改DNS记录的逻辑,具体实现参考你域名服务商的API文档

内容的提问来源于stack exchange,提问作者uhl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 22:30:12