Cloudflare
acme
- 安装acme
1
| curl https://get.acme.sh | sh -s email=my@example.com
|
- 切换至Let’s Encrypt服务
1
| acme.sh --set-default-ca --server letsencrypt
|
- 在
~/.acme.sh/account.conf 中存入
1 2
| SAVED_CF_Token='' # 刚复制的token SAVED_CF_Account_ID='' # 域名界面右侧的账户ID
|
- 申请证书(必须运行一次,没完成没关系,国内不一定能成功)
1
| acme.sh --issue -d example.com --dns dns_cf
|
- 打包账户信息
1 2
| cd ~/.acme.sh tar cz ca account.conf | base64 -w0
|
腾讯云
- 访问管理 > 用户 > 用户列表 > 新建用户
- 自定义创建 > 可访问资源并接收消息 > 输入用户名、勾选编程访问
- 搜索QcloudSSLFullAccess、QcloudTEOFullAccess并添加
- 完成并保存ID和KEY信息
GHA
在GitHub仓库中 Settings > Secrets and variables > Actions > New repository secrets
- 设置
ACME_SH_ACCOUNT_TAR 为打包的账户信息base64
- 设置
QCLOUD_SECRET_ID 为腾讯云子用户的ID
- 设置
QCLOUD_SECRET_KEY 为腾讯云子用户的KEY
.github/workflows/ssl.yml配置如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| name: Issue & Deploy SSL Certificates
on: workflow_dispatch: schedule: - cron: "0 0 1 */2 *"
jobs: ssl-certificate: runs-on: ubuntu-latest steps: - name: Check Out uses: actions/checkout@v7
- name: Issue SSL Certificate uses: Menci/acme@v2 with: version: 3.1.4 account-tar: ${{ secrets.ACME_SH_ACCOUNT_TAR }} domains: lrd0.top *.lrd0.top append-wildcard: false arguments: --dns dns_cf output-fullchain: fullchain.pem output-key: privatekey.key
- name: Deploy Certificate to TEO uses: linrongda/deploy-certificate-to-tencent-cloud@v2 with: secret-id: ${{ secrets.QCLOUD_SECRET_ID }} secret-key: ${{ secrets.QCLOUD_SECRET_KEY }}
fullchain-file: fullchain.pem key-file: privatekey.key
domains: | zone-XXXXXX lrd0.top
|
参考资料