宝塔面板如何配置泛域名SSL证书_使用DNS API接口自动申请
配置泛域名SSL证书需在宝塔面板中使用DNSAPI验证,填写`*.example.com`并同时包含主域名,需添加TXT解析记录。自动续期需手动添加计划任务,例如每月执行acme.sh命令。部署后需修改Nginx配置中server_name为通配符格式,并重启Nginx服务,否则子域名访问会报错。
配置泛域名SSL证书,在宝塔面板里其实是个很典型的“一步到位但容易踩坑”的操作。很多人照着流程走下去,最后发现子域名还是报证书错误,或者续期的时候悄无声息地失败了。这些问题,归根结底就出在验证方式、域名填写、续期配置和Nginx处理这四个环节上。下面逐个拆开来看。
 ### 泛域名SSL在宝塔里必须用DNS验证,HTTP验证行不通 泛域名证书有个关键特征——它走的是DNS-01挑战,没法用HTTP方式验证。ACME协议对此有明确规定。如果你在宝塔面板里点了“文件验证”或“自动验证”,日志里大概率会看到类似 `Cannot issue for "*.xxx": Domain is not valid for issuance` 或 `NS error: No TXT record found` 的提示。不是宝塔出了问题,是验证路径从一开始就选错了。 解决办法是手动切换到DNS API模式,前提是你的DNS服务商在ACME支持列表里。阿里云、腾讯云、Cloudflare是最常用的几家。具体操作上,有几个要点得注意: - 确认域名DNS解析托管在支持的平台(比如阿里云云解析DNS),并且账号有API权限。如果是RAM子用户,需要授予 `Alidns:DescribeDomainRecords` 和 `Alidns:AddDomainRecord` 这类权限。 - 在宝塔「网站」→「SSL」→「其他证书」→「Let's Encrypt」里,别急着点“申请”。先点右上角的“设置”,勾选“使用DNS API验证”。 - 下拉选择对应的DNS服务商,填入 `AccessKey ID` 和 `AccessKey Secret`(阿里云)或 `API Token`(Cloudflare)。注意Cloudflare的Token需要带 `Zone:Read` 和 `DNS:Edit` 权限。 ### 填泛域名时必须带星号且只填一级通配符 申请框里写 `*.example.com` 是对的,但要是写成 `*.sub.example.com` 或 `**.example.com`,就没法通过——ACME不允许多级通配或嵌套通配。另外,不能只填 `*` 或 `example.com`。泛域名证书必须显式包含 `*.` 前缀,而且主域名(`example.com`)也建议一并加入,不然访问根域名时会提示证书不匹配。 推荐的做法是这样填:`*.example.com,example.com`(逗号分隔,无空格)。如果需要覆盖 `www.example.com`,可以再加进去:`*.example.com,example.com,www.example.com`。不过要注意,Let's Encrypt单张证书最多支持100个域名,泛域名本身已经占了一个主体,别堆太多。 填完之后别急着提交。先点一下“测试DNS API”按钮——宝塔会尝试添加一条临时TXT记录并查询,成功才说明凭证和权限没问题。 ### 自动续期依赖cron任务,但宝塔默认不自动启用 用DNS API模式申请成功后,证书的有效期是90天。但宝塔不会像HTTP模式那样自动挂载续期任务。如果你没有手动干预,到期前20天左右面板右上角会出现黄色提醒,点进去看“自动续签”开关仍然是灰色的。这是正常现象,因为DNS续期需要复用相同的API凭据,宝塔不会默认帮你保存并触发。 解决方案是手动配置一个计划任务: - 进入「计划任务」→「添加计划任务」,任务类型选「Shell脚本」,执行周期设为「每天03:00」(避开Let's Encrypt的请求高峰)。 - 脚本内容可以填:`bt 71 && bt 72`(`bt 71`重载SSL配置,`bt 72`强制续签所有可续签证书)。 - 更稳妥的做法是单独指定站点续签:`/www/server/panel/pyenv/bin/python /www/server/panel/class/acme_v2.py --renew=www.example.com`,把 `www.example.com` 换成你实际的主域名。 ### 证书部署后Nginx配置要手动检查server_name 宝塔生成的泛域名证书虽然绑定了,但默认站点配置里的 `server_name` 可能还是写的具体域名(比如 `www.example.com`)。这会导致 `api.example.com` 或 `shop.example.com` 访问时走不到这个HTTPS配置,浏览器报 `NET::ERR_CERT_COMMON_NAME_INVALID`。 需要手动处理一下: - 进入「网站」→「设置」→「配置文件」,找到 `server_name` 行,改成 `server_name *.example.com example.com;`。 - 注意,Nginx不支持 `server_name *` 这种写法,必须写完整通配格式。如果子域名太多,也可以用正则:`server_name ~^(?
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















