首页 / 新闻资讯 / 技术教程

Let's Encrypt 证书手动续期与自动续期配置

2026-10-11分类:技术教程管理员

## 适用场景

Let's Encrypt 的免费证书有效期九十天,靠人工记日期续期迟早会忘,某天浏览器突然红色警告,用户打电话来才知道证书过期了。正确姿势是:第一次手动签发跑通流程,然后立刻配上自动续期,让证书这件事彻底退出待办清单。在顺云云服务器上搭网站,这一步属于基础设施收尾动作。配好之后证书的签发、续期、部署全流程无人值守,浏览器不再弹红色警告。

## 手动签发流程

acme.sh 是轻量的命令行客户端,一条命令完成验证与签发。网站已在线的场景用 webroot 模式,不需要停服务:

bash
acme.sh --issue -w /var/www/example -d example.com -d www.example.com

-w 指定网站根目录,验证过程会在下面自动创建验证文件,验证通过即签发。签好的证书不要直接引用 acme 的内部目录,用 install-cert 安装到正式位置并挂上重载钩子:

bash
acme.sh --install-cert -d example.com \
  --key-file /etc/nginx/ssl/example.key \
  --fullchain-file /etc/nginx/ssl/example.cer \
  --reloadcmd "nginx -s reload"

这一步把证书文件落位与重载动作绑定,之后每次续期都会自动执行,是自动化的关键。

## 自动续期配置

acme.sh 安装时通常会自动创建每日定时任务,执行 acme.sh --cron 检查所有证书,临期六十天内自动续。确认任务存在用 crontab -l 查看,没有就按官方文档补一条每天执行。验证自动链路不必真等九十天,用强制续期演练一次:

bash
acme.sh --renew -d example.com --force

看到续期成功、证书文件更新、Nginx 完成重载,链路就通了。续期任务每天都会留下执行记录,翻一眼日志就能确认最近一次检查时间与结果。续期失败要有兜底:acme.sh 支持把失败通知发到邮箱或外部接口,配一个,别让失败静默。

## 验证与注意事项

验证证书状态用 openssl s_client 连 443 端口看 notAfter 日期,或直接看落位文件的更新时间。注意事项三条:webroot 目录必须与 Nginx 实际 root 一致,改了网站配置忘了改续期配置,验证就会失败;多域名证书的 -d 参数要签发与续期一致;防火墙与控制台防火墙规则保持 80 端口可达,http 类验证依赖它,域名解析变更或迁移服务器后要重新核对。把证书过期监控也配上,自动化再加一道保险,双保险才睡得安稳。多台服务器各自配一套即可,把配置纳入初始化模板,新机器上线即自带续期能力。

技术教程