又一个用Github Action + acme.sh 自动申请+续签SSL证书的项目

论坛帖子启发,小改了一下

自动申请SSL 证书,并push到repo

定时检查SSL 证书过期时间,对于小于30天有效期的证书自动续期

同时申请 ECDSA 和 RSA 证书

如有设置,会从主CA和备CA各申请一份ECDSA和一份RSA证书

2024/10/9更新

给每个目录添加了随机数
/$domain/random/ECC && /RSA
理论上可以部署到Cloudflare Pages 然后通过特定的路径远程获取证书

环境变量

Repository Secrets

  1. ACCOUNT_EMAIL:用于注册 SSL 证书的电子邮件地址。
  2. DNSAPI:DNS API 配置,指定使用的 DNS 提供商进行验证。参见acme.sh wiki,无需"export"
  3. ZEROSSL_EAB_KEY_ID:ZeroSSL 的 EAB(External Account Binding)密钥 ID。
  4. ZEROSSL_EAB_HMAC_KEY:ZeroSSL 的 EAB HMAC 密钥。

Repository Variables

  1. CA:证书颁发机构(CA) letsencrypt 或 zerossl。
  2. BACKUP_CA:备 CA 。(可选)
  3. ECC_KEYLENGTH:ECC 证书密钥长度, ec-256 或 ec-384。
  4. RSA_KEYLENGTH:RSA 证书密钥长度, 2048 或 3072 或 4096。

设置 GitHub Actions 权限

Settings -> Code and automation -> Actions -> General -> Workflow permissions -> Read and write permissions ✅

配置域名

修改domains_examples.yaml并重命名为domains.yaml

触发

默认 UTC 17:00 即 UTC+8 1:00 执行一次

也可以手动触发

已知问题

不知道为什么有时候申请zerossl证书会失败,需要再触发一次action才能申请到

致谢

danbao/auto-ssl

kimoch111/AutoSSL

23 个赞

mark先。

已加星 先收藏

感谢佬友的分享。。

收藏 备用,感谢佬

感谢大佬分享 。

在生成的证书目录加入了openssl rand -hex 16 随机数
某种意义上可以直接部署到Cloudflare Pages 然后远程拉取
(不建议那么做,多一份上传就多一份风险)

请教下这个大概有什么用途?我实在想不到有哪里可以用上的。。

感谢佬友分享,先mark

统一的自动化证书管理
多个设备短时内申请过多容易触发letencrypt的速率限制
虽然zerossl没有

已赞,先Mark