使用 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 的优势

使用 GitHub Action 自动化 SSL 证书的申请和更新,不仅节省了手动操作的时间,还能减少人为错误。对于需要频繁更新证书的项目,自动化流程显得尤为重要,确保网站安全性和可用性。

环境变量的安全性

在使用 GitHub Action 时,环境变量的管理至关重要。建议将敏感信息如 API 密钥和 SSH 密钥存储在 GitHub Secrets 中,以防止泄露。这种做法可以提高安全性,确保只有授权的操作才能访问这些信息。

多服务器支持

该流程支持在多台服务器上上传证书,适合大型项目或多环境部署。用户可以根据需要扩展上传任务,确保所有相关服务器都能及时更新证书,避免因证书过期导致的服务中断。

腾讯云的自动化功能

腾讯云提供的自动申请和更新免费证书的功能,简化了证书管理流程。用户只需配置 tccli 工具,即可实现证书的自动化更新,减少了手动上传的复杂性,适合使用腾讯云服务的用户。

延伸问答

如何使用 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' 来处理证书上传失败的情况,确保后续步骤仍然执行。

🏷️

标签

➡️

继续阅读