受论坛帖子启发,小改了一下
自动申请SSL 证书,并push到repo
定时检查SSL 证书过期时间,对于小于30天有效期的证书自动续期
同时申请 ECDSA 和 RSA 证书
如有设置,会从主CA和备CA各申请一份ECDSA和一份RSA证书
2024/10/9更新
给每个目录添加了随机数
/$domain/random/ECC && /RSA
理论上可以部署到Cloudflare Pages 然后通过特定的路径远程获取证书
环境变量
Repository Secrets
ACCOUNT_EMAIL
:用于注册 SSL 证书的电子邮件地址。DNSAPI
:DNS API 配置,指定使用的 DNS 提供商进行验证。参见acme.sh wiki,无需"export"ZEROSSL_EAB_KEY_ID
:ZeroSSL 的 EAB(External Account Binding)密钥 ID。ZEROSSL_EAB_HMAC_KEY
:ZeroSSL 的 EAB HMAC 密钥。
Repository Variables
CA
:证书颁发机构(CA) letsencrypt 或 zerossl。BACKUP_CA
:备 CA 。(可选)ECC_KEYLENGTH
:ECC 证书密钥长度, ec-256 或 ec-384。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才能申请到