使用 GitHub Action 自动更新 SSL 证书

💡 原文中文,约5300字,阅读约需13分钟。
📝

内容提要

本文介绍了如何使用 GitHub Action 自动化申请和更新 SSL 证书的流程,包括创建 YML 文件、使用 acme.sh 申请证书、配置环境变量和 SSH 密钥,以及证书上传步骤,确保证书更新的自动化和顺利应用。

🎯

关键要点

  • 使用 GitHub Action 自动化申请和更新 SSL 证书的流程。
  • 在项目根目录下的 .github/workflows 中创建 .yml 文件。
  • 使用 acme.sh 申请 SSL 证书,需安装 acme.sh 并配置环境变量。
  • 申请泛域名证书时,需要同时传入主域名和通配符域名。
  • 证书上传到服务器需要 SSH 密钥,并将公钥上传到服务器的 authorized_keys。
  • 上传证书后需重载 Nginx 配置以应用新证书。
  • 支持多台服务器的证书上传任务。
  • 腾讯云提供自动申请和更新免费证书的功能,需使用 tccli 工具。
  • 设置腾讯云 API 密钥和证书 ID 以实现自动化更新。

延伸问答

如何使用 GitHub Action 自动更新 SSL 证书?

通过在项目根目录下的 .github/workflows 中创建 YML 文件,使用 acme.sh 申请证书,并配置 SSH 密钥和环境变量来实现自动更新。

申请泛域名证书时需要注意什么?

申请泛域名证书时,需要同时传入主域名和通配符域名,例如 your-domain.com 和 *.your-domain.com。

如何配置 SSH 密钥以便上传证书?

需要准备一对 SSH 密钥,将公钥上传到服务器的 ~/.ssh/authorized_keys,并将私钥添加到 GitHub Secrets 中,名称为 SSH_PRIVATE_KEY。

如何在 GitHub Action 中设置定时任务?

在 YML 文件中使用 'on: schedule:' 语法设置 cron 表达式,例如每周一 UTC 20:00 触发任务。

腾讯云如何实现自动申请和更新 SSL 证书?

腾讯云提供 EdgeOne 服务,可以自动申请和更新免费证书,用户需使用 tccli 工具进行配置。

在 GitHub Action 中如何处理证书上传失败的情况?

可以在 YML 文件中使用 'continue-on-error: true' 来处理证书上传失败的情况,确保后续步骤仍然执行。

➡️

继续阅读