需配置阿里云DNS API实现宝塔面板SSL自动续签:一、阿里云创建AccessKey并授权DNS权限;二、宝塔安装兼容插件并填入API信息;三、站点SSL设置中启用DNS验证;四、配置定时续签任务并测试;五、验证TXT记录自动增删及证书部署正确性。

如果您使用宝塔面板管理网站,并希望借助阿里云DNS实现SSL证书的自动续签,则需要配置DNS验证方式以绕过HTTP验证的局限性。以下是完成该目标的具体步骤:
一、在阿里云DNS中创建子域名并获取API密钥
宝塔面板通过阿里云DNS API自动添加和删除TXT记录,从而完成ACME协议的DNS-01挑战验证。需提前开通阿里云AccessKey并授权DNS权限。
1、登录阿里云控制台,进入云解析DNS服务页面。
2、点击左侧菜单API密钥管理,创建新的AccessKey ID与AccessKey Secret。
3、在RAM访问控制中为该密钥附加AliyunDNSFullAccess策略,确保具备添加/删除TXT记录权限。
4、记录下生成的AccessKey ID和AccessKey Secret,后续将填入宝塔面板。
二、在宝塔面板中安装并配置阿里云DNS插件
宝塔官方未内置阿里云DNS支持,需手动安装第三方兼容插件,使SSL模块能调用阿里云API执行DNS验证。
1、进入宝塔面板软件商店,搜索并安装DNSPod或Cloudflare插件(二者均支持自定义DNS API适配)。
2、在插件设置中选择自定义DNS API模式,填写阿里云DNS接口地址:https://alidns.aliyuncs.com/。
3、在认证字段中分别填入已获取的AccessKey ID和AccessKey Secret,并指定RegionId为cn-hangzhou(默认地域)。
4、点击测试连接按钮,确认返回Success后保存配置。
三、为站点启用DNS验证方式的SSL证书申请
启用DNS验证可避免因端口阻塞、反向代理配置异常等导致的HTTP验证失败,是实现全自动续签的前提条件。
1、在宝塔面板中打开网站列表,点击目标站点右侧的SSL按钮。
2、在证书申请界面取消勾选HTTP验证,勾选DNS验证选项。
3、从下拉菜单中选择已配置好的阿里云DNS插件实例。
4、点击申请按钮,系统将自动调用API添加TXT记录,并等待阿里云DNS全球生效(通常约1–5分钟)。
四、配置自动续签任务及触发机制
Let’s Encrypt证书有效期为90天,宝塔默认在到期前20天检测并触发续签;需确保计划任务正常运行且DNS插件持续可用。
1、进入面板左侧计划任务,确认存在名为SSL证书自动续期的定时任务。
2、检查该任务执行周期是否为每天凌晨03:00,执行命令是否包含/www/server/panel/pyenv/bin/python /www/server/panel/class/acme_v2.py --renew。
3、在站点SSL设置页勾选开启自动续签,并确保DNS验证方式保持启用状态。
4、手动执行一次续签测试:在SSH中运行bt 76,选择对应站点编号,观察输出中是否出现DNS record added successfully及Certificate renewed字样。
五、验证DNS记录自动清理与证书部署一致性
ACME协议要求在验证完成后立即删除临时TXT记录,否则可能影响下次验证;同时新证书需自动部署至Nginx/Apache配置中。
1、在阿里云DNS解析列表中,查找以_acme-challenge.开头的TXT记录,确认其TTL值为600秒且内容为随机字符串。
2、待证书签发成功后,再次刷新DNS解析页,确认该TXT记录已被自动删除。
3、查看站点配置文件(如/www/server/panel/vhost/nginx/xxx.conf),确认ssl_certificate与ssl_certificate_key路径指向/www/wwwroot/xxx/fullchain.pem与/www/wwwroot/xxx/privkey.pem。
4、执行nginx -t && nginx -s reload,确认配置重载无报错,且浏览器访问显示证书有效期已更新。










