很多用户因为使用优选 IP,就和腾讯云自动申请证书产生了冲突,导致无法自动完成证书的签发和部署。本来我企图找到类似于 Cloudflare 那样的通过 DCV 委派来签发证书的方式,但是翻了一阵之后发现腾讯云并不提供 DCV 委派,所以只能另寻他法。
好在,腾讯云的证书管理是支持自己手动上传自己的证书的。最开始我就是在控制台搜索证书管理,进入之后手动上传了自己通过 acme.sh 签发的通配符证书,然后在 EdgeOne 手动地把所有子域名都部署上证书。但是因为 acme.sh 签发的证书有效期都只有 3 个月了,这就意味着手动操作会需要每三个月都要执行一次,还是有点麻烦的,所以我又开始寻找通过 API 完成手动上传并部署证书到 EdgeOne 的办法。
经过一顿翻,找到了这个项目。
这个项目支持 GitHub Actions 部署,每月自动申请并部署,所以懒惰的我就 try 了 try,但免费的就是最贵的,经过我两天半的奋战才搞好(`へ´)
准备工作
- GitHub 账号
- EdgeOne 账号
- 脑子
- 手
开始操作
Fork 这个仓库
打开这个项目,点击右上角的 Fork
,取个好听的名字,然后 Create fork

添加环境变量
进入你 Fork 的这个仓库,点击上方的 Settings

接着滑到下面,进入 Secrets and variables
-> Actions
,在右侧点击 New repository secret

添加如下环境变量:
ACME_DNS_TYPE
: Acme 的 dns 类型。域名托管在 cloudflare 就写dns_cf
,dnspod 就写dns_dp
ACME_DOMAIN
: 你的顶级域名,例如:airtouch.top
打开 腾讯云 api,点击 新建密钥
,在弹出的窗口中复制 SecretId
和 SrcretKey
,填写到环境变量SECRETID
、SECRETKEY

再打开 EdgeOne,找到 zone-xxxxx
这一串东西复制,填写到环境变量 ZONE_ID

打开 Cloudflare控制台,进入你的域名,划到最下面,复制账户ID
,填写到环境变量 CF_Account_ID

然后点击下面的 获取您的 API 令牌
,点击创建令牌
,选择编辑区域 DNS

选择你的域名

继续点击创建令牌,复制下来,填写到环境变量 CF_TOKEN

CDN_DOMAIN
: CDN 域名,多个域名用逗号分隔,比如我的就是blog.airtouch.top
BARK_HOST
: Bark 消息通知 Host(可选)BARK_KEY
: Bark 消息通知 Key(可选)
UPDATE_SSL
:填False
DELETE_OLD_CERTS
:是否需要删除过期证书(True
/False
)PUSH_URL
:填False
PURGE_URL
:填False
ENABLE_HSTS
:填False
ENABLE_OCSP
:填False
ENABLE_HTTP2
:填False
打开 Github Actions
在上方找到 Actions
进入

先点击绿色的 I understand
进入,再在左侧找到 Update Cert
,点击右侧的 Enable workflow
,这样就启用了 Actions

如果你想手动测试一下,那么点击 Run workflow
-> Run workflow
,这样就运行了。

每个月都会这样自动运行,续期一次