宝塔面板 + 阿里云 DNS 实现 Let’s Encrypt 证书自动续签(详细图文教程)

在现代网站运营中,HTTPS 已经成为基础设施的必备项。Let's Encrypt 提供了免费的 SSL/TLS 证书,但其有效期只有 90 天,这意味着如果手动续签,操作繁琐且容易遗忘。

通过本教程,你将学会如何结合 宝塔面板(BT Panel)阿里云 DNS API ,实现 Let's Encrypt 证书的 自动申请与自动续签 ,并且支持 泛域名证书 (*.example.com)。


一、方案概览

本文将涵盖以下内容:

  • 在宝塔面板创建网站并开启 SSL

  • 配置 DNS API 自动添加 TXT 解析记录

  • 在阿里云获取 AccessKey 并授予 DNS 权限

  • 将 AccessKey 配置到宝塔

  • 自动申请 Let's Encrypt 证书并自动续签

使用到的核心技术:

  • DNS-01 验证(必需)

  • 阿里云 DNS API

  • 宝塔的 DNS 自动化支持


二、准备条件

条件 说明
宝塔面板 已安装最新版
已备案域名 例如 example.com
阿里云账号 有阿里云账号并能登录控制台
阿里云 DNS 已托管域名 域名解析在阿里云 DNS

三、宝塔侧操作

这部分重点是配置宝塔,让它能够自动调用 DNS API 进行解析验证。


1. 新建网站

  1. 登录宝塔控制面板

  2. 菜单栏选择 网站 → 添加站点

  3. 填写主域名:

    复制代码
    example.com
  4. 默认目录与端口保持即可

  5. 点击 提交

此时你已经在宝塔管理了你的网站。


2. 进入 SSL 配置

  1. 在宝塔面板左侧点击 网站

  2. 找到 example.com 这行

  3. 点击 设置

  4. 再点击 SSL


3. 选择 Let's Encrypt 并启用 DNS 验证

在 SSL 页面中:

  • 点击顶部的 Let's Encrypt

  • 验证方式选择:

    复制代码
    DNS 验证(支持通配符)
  • 文件验证不可用于泛域名证书

点击 配置 DNS 接口

📌 截图参考:

(你之前上传的截图显示了 Let's Encrypt 和 DNS 验证部分)


4. 进入 DNS 接口设置

在弹出的对话框中:

  • 点击 DNS 接口设置

  • 点击 添加 DNS 接口

如图:

(你之前上传的截图显示了 "添加 DNS 接口" 按钮)


5. 添加 DNS 接口

添加 DNS 接口时:

  • 验证类型选择:

    复制代码
    AliyunDns
  • ID:填阿里云 AccessKey ID

  • Token:填阿里云 AccessKey Secret

  • 备注可自定义

保存即可。

⚠️ 当前这里暂时还没配置 AccessKey 内容,所以留空稍后填写。


四、阿里云获取 AccessKey

这部分是在阿里云控制台完成。


1. 登录阿里云控制台

打开阿里云控制台,登录你的账号。


2. 进入 RAM(访问控制)

  1. 控制台左侧搜索框输入:

    复制代码
    RAM
  2. 进入 访问控制 → 用户


3. 创建 RAM 用户

点击 创建用户

在对话框中:

  • 用户名:例如

    复制代码
    bt-dns-cert
  • 选择 系统生成密码或无密码

  • 点击 确定

此时你已创建一个新的 RAM 用户。


4. 添加权限策略

在新创建的用户详情页:

点击 权限管理 → 添加权限

选择:

复制代码
AliyunDNSFullAccess

该策略允许该用户操作 DNS 相关接口;如果安全要求高,也可以自定义权限策略,仅包含 DNS API 权限。


5. 创建 AccessKey

在该 RAM 用户详情页:

  1. 点击 AccessKey 管理

  2. 点击 创建 AccessKey

  3. 出现选择场景界面,选择:

    复制代码
    其他
  4. 勾选确认框

  5. 点击 继续创建

⚠️ 系统会生成:

复制代码
AccessKey ID
AccessKey Secret

注意:

  • Secret 仅显示一次

  • 一定要保存(复制/下载 CSV)

截图你可以参考:

(你之前上传的截图显示了生成 AccessKey 的界面)


五、回到宝塔填写 DNS API 信息

这部分是将阿里云的 API 密钥输入回宝塔。


1. 再次打开 DNS 接口设置

  1. 在宝塔的 DNS 接口设置 界面

  2. 点击 刚加的 DNS 接口

  3. 输入:

    验证类型:AliyunDns
    ID:AccessKey ID
    Token:AccessKey Secret
    备注:可填 Alicloud DNS 自动续签

  4. 点击 确定


2. 绑定域名使用这个 DNS 接口

在申请证书页面:

  1. 勾选域名:

    • example.com

    • *.example.com

  2. 确保这两个域名均被选中

  3. 确认右侧的 DNS 接口是刚配置的阿里云接口


六、申请 Let's Encrypt 证书

所有 DNS 接口和域名都配置完成后:

  1. 在证书申请页面

  2. 点击 申请证书

此时宝塔会:

  • 通过阿里云 DNS API 自动添加 _acme-challenge.example.com 的 TXT 记录

  • Let's Encrypt 完成 DNS 验证

  • 自动签发证书

  • 自动部署到网站

成功后可以看到证书有效期及自动续签设置。


七、证书自动续签机制(解释)

宝塔后台运行一个定时任务:

  • 每天检测证书有效期

  • 当证书还有大约 30 天到期时:

    • 再次调用 DNS API 执行验证

    • 自动续签新证书

    • 自动部署覆盖旧证书

  • 如果验证失败、DNS API 错误、AccessKey 权限问题都会视为续签失败

因此确保:

  • AccessKey 未禁用

  • 阿里云 DNS 已绑定域名

  • 宝塔面板可以访问阿里云 API(网络没有防火墙阻断)


八、常见问题详解

Q1. 为什么必须选择 DNS 验证?

Let's Encrypt 的 DNS-01 验证适用于:

  • 泛域名证书(*.example.com

  • 自动化

  • 不需要暴露文件验证路径

HTTP / 文件验证对泛域名无效。


Q2. AccessKey 泄露怎么办?

如果 AccessKey 泄露:

  1. 立即登录阿里云控制台

  2. 禁用或删除该 AccessKey

  3. 重新创建新的 AccessKey

  4. 回到宝塔重新填写新的值


Q3. 为什么宝塔续签失败?

常见原因:

  • AccessKey 权限不足

  • DNS API 调用次数被限额

  • DNS 解析尚未生效

  • 阿里云 DNS 解析设置错误


九、完整流程图(逻辑关系)

复制代码
宝塔请求续签 → 检查证书到期日
                     ↓
           调用 DNS API 添加 TXT 记录
                     ↓
             Let's Encrypt 验证成功
                     ↓
     证书重新签发并自动部署到网站

十、完整操作要点总结

步骤 是否必须
DNS-01 验证
阿里云 DNS API 配置
RAM 用户 + 权限
AccessKey 填写到宝塔
自动续签检测 宝塔 自动完成

十一、结语

通过本教程,你已经学会:

  • 配置宝塔自动续签 Let's Encrypt 证书

  • 使用阿里云 DNS API 自动添加验证解析

  • 对泛域名证书进行全自动证书生命周期管理

这是一个值得在生产环境推广的自动化证书管理方案,可以帮助你节省运维成本与人工错误。

相关推荐
ha_lydms1 天前
DataWorks离线同步 OSS文件
大数据·阿里云·oss·dataworks·maxcompute·数据同步·离线计算
JiL 奥1 天前
Ubuntu系统安装AWS SAM
云计算·aws
liyuanchao_blog1 天前
linuxptp适配记录
linux·云计算
YongCheng_Liang1 天前
从零开始学虚拟化:性能优化全指南(资源分配 + 存储网络 + 监控)
运维·云计算
YongCheng_Liang1 天前
从零开始学虚拟化:高可用与灾备技术全解析(集群 + 备份 + 异地灾备)
运维·云计算
珠海西格2 天前
“主动预防” vs “事后补救”:分布式光伏防逆流技术的代际革命,西格电力给出标准答案
大数据·运维·服务器·分布式·云计算·能源
xianyinsuifeng2 天前
RAG + Code Analysis 的标准路线
数据仓库·自动化·云计算·原型模式·aws
Genie cloud2 天前
在 Mac 上使用 Docker 安装宝塔并部署 LNMP 环境
macos·docker·容器·云计算
php_kevlin2 天前
阿里云AI接口接口
阿里云·云计算
万博智云OneProCloud2 天前
CloudEndure 退出中国市场之后,AWS 容灾该走向哪里?
云计算·aws