HTTPS 证书自动续期方案:acme.sh + FreeSSL,配置一次彻底离手

    做网站的都懂:HTTPS 证书 90 天到期,忘记续 = 用户浏览器一片红,老板夺命连环 call。分享一个跑在生产上的全自动方案:acme.sh + FreeSSL,配置一次,到期自动续期 + 自动 reload nginx,从此证书这个事彻底离手。

    为什么选这套组合

    • FreeSSL 国内直连,不折腾
    • acme.sh GitHub 4 万+ star,久经考验
    • webroot 验证,续期不停机
    • ECDSA 证书,更小更快

    三步搞定

    1. 安装 acme.sh

    国内服务器自动走 Gitee 源,安装命令:
    curl https://get.acme.sh | sh -s emAIl=你的邮箱

    2. 在 freessl.cn 免费领取 EAB 凭证并注册账户

    访问 freessl.cn,注册账号后创建 EAB 凭证,记录 Key ID 和 HMAC Key。

    3. 一条命令签发,install-cert 自动部署 + reload

    acme.sh --register-account -m 你的邮箱 \
      --server https://acme.freessl.cn/v2/DV90/directory/你的EAB_KID \
      --eab-kid 你的EAB_KID \
      --eab-hmac-key 你的EAB_HMAC_KEY
    
    acme.sh --issue -d 你的域名 --webroot /www/wwwroot/你的站点目录
    
    acme.sh --install-cert -d 你的域名 \
      --key-file /path/to/privkey.pem \
      --fullchain-file /path/to/fullchain.pem \
      --reloadcmd "nginx -s reload"

    自动续期才是灵魂

    装完自动加 cron,每天巡检,90 天证书第 60 天自动续,续完自动部署 reload。
    换域名只改一行配置,新域名自动进续期队列。

    血泪避坑

    • nginx 里 acme-challenge 路径千万别删!
    • ECC 证书手动操作要带 --ecc
    • cron 日志默认丢弃,记得重定向

    配置一次,证书这个事就彻底不用管了。