LNMP 环境下强制更新 Let's Encrypt SSL 证书
在 LNMP 环境中,Let's Encrypt 证书通常通过 acme.sh 脚本进行管理。当证书即将过期或需要强制更新时,可以使用特定的命令。请注意,本文的命令和说明已适配较新的环境,虽然原文提及 CentOS 6.8,但核心命令在主流 Linux 发行版(如 CentOS 7/8, Ubuntu 等)的 LNMP 环境中同样适用。
强制更新证书命令
通过 SSH 连接到您的 Linux 服务器后,可以执行以下命令来强制更新所有由 acme.sh 管理的 Let's Encrypt 证书:
/usr/local/acme.sh/acme.sh --cron --force --home /usr/local/acme.sh
命令参数详解
--cron: 执行定时任务模式,用于检查并更新所有已配置的证书。--force: 强制更新证书,即使证书尚未到期也会立即尝试续期。这在证书配置出错、需要立即刷新或测试时非常有用。--home /usr/local/acme.sh: 指定 acme.sh 的主目录。在 LNMP 一键安装包中,acme.sh 通常默认安装在此路径。如果您的安装路径不同,请修改为此路径。
操作说明与注意事项
- 权限要求: 通常需要使用
root用户执行此命令,或使用sudo。 - 验证更新: 命令执行后,acme.sh 会与 Let's Encrypt 服务器通信,验证域名所有权并签发新证书。成功后会输出类似 "Cert success" 的信息。
- 重启 Web 服务: 证书文件更新后(通常位于
/usr/local/nginx/conf/ssl/或类似路径),必须重启 Nginx 服务以使新证书生效。例如:service nginx restart或systemctl restart nginx。 - 自动续期: 正常情况下,acme.sh 已配置定时任务(cron job)自动处理续期,无需手动干预。强制更新命令仅用于特殊情况。
- 路径确认: 如果命令执行报错 "command not found",请确认 acme.sh 的安装路径。您可以通过
find / -name acme.sh 2>/dev/null来查找。
更通用的更新方法
如果您不确定 acme.sh 的具体路径,或者它已正确加入系统环境变量,可以直接使用以下简化命令:
acme.sh --cron --force
此命令会使用 acme.sh 默认的配置目录(通常是 ~/.acme.sh/)。对于 LNMP 一键安装包部署的环境,建议使用前文指定的完整路径以确保无误。
提示: Let's Encrypt 证书有效期为 90 天。建议设置好自动续期,并定期检查日志(如
/usr/local/acme.sh/acme.sh.log)以确保续期过程正常。