2025-05-21 19:22:26
627

LNMP一键包如何自动续期SSL证书?

摘要
本文详解在LNMP环境中使用acme.sh脚本实现SSL证书自动续期的方法,包含DNS验证配置、Cron任务设置、Nginx集成优化及故障排查流程,适用于需要长期维护HTTPS服务的运维场景。...

一、LNMP 环境与 SSL 证书自动续期的必要性

在 LNMP(Linux + Nginx + MySQL + PHP)环境中,SSL 证书通常由 Let’s Encrypt 等机构签发,但其免费证书有效期仅为 3 个月。手动续期效率低下且易遗漏,可能导致服务中断。通过自动化工具实现续期,可显著提升运维效率和安全性。

LNMP一键包如何自动续期SSL证书?

二、使用 acme.sh 脚本实现自动续期

acme.sh 是轻量化的证书管理工具,支持与 LNMP 一键包无缝集成。操作步骤如下:

  1. 安装脚本:curl https://gitcode.net/cert/cn-acme.sh/-/raw/master/install.sh | sh -s email=your@email.com(脚本默认安装至 /root/.acme.sh
  2. 生成证书:通过 DNS API 验证域名所有权(以腾讯云为例):
    export Tencent_SecretId="API_ID"
    export Tencent_SecretKey="API_Key"
    acme.sh --issue --dns dns_tencent -d example.com -d *.example.com
  3. 设置自动任务:通过 Cron 每月执行续期检查:
    0 0 * * * /root/.acme.sh/acme.sh --cron --home /root/.acme.sh

三、配置 LNMP 集成与证书自动加载

需修改 Nginx 配置文件以适配自动续期流程:

  • 证书存储路径标准化:将证书文件统一存放于 /usr/local/nginx/ssl/ 目录
  • 添加证书重载指令:在续期脚本末尾追加 nginx -s reload 使新证书生效
Nginx 证书配置示例
参数
ssl_certificate /usr/local/nginx/ssl/fullchain.cer
ssl_certificate_key /usr/local/nginx/ssl/example.com.key

四、验证与故障排除

可通过以下步骤验证自动化流程:

  1. 手动触发续期测试:acme.sh --renew -d example.com --force
  2. 检查日志文件:tail -f /var/log/acme_sh.log
  3. 常见错误处理:若出现 SSL 模块缺失,需重新编译 Nginx 并添加 --with-http_ssl_module 参数

结论:通过 acme.sh 与 Cron 任务结合,LNMP 环境可实现 SSL 证书全生命周期管理。建议定期检查日志文件,并通过 openssl x509 -dates -noout -in certificate.pem 验证证书有效期。

声明:文章不代表云主机测评网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
回顶部