前两个月由于腾讯云 CDN 不支持欠费立刻暂停服务换到了多吉云 CDN。

但是!
目前 宝塔/1Panel 的免费 SSL 证书都只有 90 天的有效期,虽然可以自动续签,但是续签后还是需要频繁手动更新 CDN 的证书,非常麻烦。
好在多吉云提供了对应的 API,使得我们可以通过脚本的方式自动实现同步 SSL 证书到多吉云 CDN。

功能
- 🔑 动态生成多吉云 API 访问令牌
- 📤 一键式证书上传与管理
- 🌐 多域名智能证书绑定
- 🗑️ 旧证书清理功能(可选)
- ⏰ 无缝衔接 Let's Encrypt 自动续期
- ✅ 双平台支持(宝塔/1Panel)
快速开始
- 获取多吉云 API 密钥:
- 登录多吉云控制台
- 进入「用户中心」→「密钥管理」
- 创建新密钥对
- 确认证书路径:
- 宝塔面板:
/www/server/panel/vhost/ssl/域名目录/ - 1Panel 可跳过
- 宝塔面板:
配置指南
编辑脚本中的以下参数:
部署指南
1Panel
- 进入证书管理界面
创建/编辑证书:
- 启用「自动续签」
- 启用「推送证书到本地目录」
- 选择目录
- 启用「申请后执行脚本」
- 粘贴本脚本内容
- 修改证书路径为:
CodeBlock Loading...

1Panel 证书设置
宝塔
- 创建定时任务:
- 任务类型:Shell 脚本
- 任务名称:随意
- 执行周期:每月 1 号 01:30 执行一次
- 执行用户:root
- 脚本内容:粘贴本脚本内容

宝塔定时任务
- 配合自动续签 Let’s Encrypt 证书定时任务
/www/server/panel/pyenv/bin/python /www/server/panel/class/acme_v2.py –renew=1理论上可以实现放养多吉云 CDN 的证书。
保存后执行一次任务,如果显示下面信息即已经完成证书的同步:
代码思路
获取密钥 & 生成 AccessToken
多吉云的 API 具有验证机制,使用前需要在控制台的 密钥管理 获取 AccessKey 以及 SecretKey,然后根据 AccessKey 和 SecretKey生成 AccessToken 。
AccessToken 的生成过程是将请求地址和请求内容拼接后,使用 SecretKey 进行 HMAC-SHA1 加密,然后将得到的加密值与 AccessKey 用冒号连接起来。具体的生成算法可以参考文档 验证机制 。
生成了 AccessToken 后,只需要在请求头中加上 Authorization: TOKEN <AccessToken> 即可通过验证。
找到宝塔的域名证书 & 上传证书
在 /www/server/panel/vhost/ssl/ 目录下,可以找到宝塔所有以域名命名的文件夹,文件夹内包含这个域名对应的完整证书链 fullchain.pem 以及私钥 privkey.pem。
这里推荐给域名及其所有子域名使用同一个泛域名证书,可以实现一次性将域名及其所有子域名完成证书同步。
以域名 vinking.top 为例,完整证书链文件和私钥文件的目录如下:
获取到域名证书后,需要通过 POST 的方式向 https://api.dogecloud.com/cdn/cert/upload.json 提交证书内容。上传成功后需要获取证书 ID,以便将刚才上传的证书绑定到域名。