属于大家的
VPS知识分享站

萤光云SSL证书自动续期:Nginx部署、验证与排错

先说结论:SSL证书自动续期不是“脚本运行过一次就永久安全”。完整流程应包括证书获取、定时任务、权限控制、Nginx配置检查、平滑重载、到期监控和失败告警。萤光云控制台生成的续期命令和目录规则可能更新,应以当前证书任务页面为准。

萤光云SSL证书自动续期任务入口
只从萤光云官方控制台复制当前任务命令,并先审查脚本来源和内容。

部署前提与安全检查

  • 域名已正确解析到服务器,Nginx当前配置可以正常启动;
  • 已在官方控制台创建证书和自动续期任务;
  • 服务器具备脚本所需工具,且系统时间和DNS正常;
  • 证书目录仅允许必要账号读取,私钥不得写入公开目录或版本库;
  • 执行任何下载脚本前,确认URL域名、HTTPS证书和脚本内容;
  • 保留当前可用证书和Nginx配置备份,以便续期失败时回滚。

推荐的部署顺序

  1. 在Nginx站点配置中使用证书和私钥的绝对路径;
  2. 创建受限的证书目录,例如/etc/nginx/ssl,并设置最小权限;
  3. 从萤光云当前证书任务页面复制续期命令,不使用第三方转载命令;
  4. 先查看脚本再执行,确认下载地址、写入目录、定时任务和重载命令;
  5. 手动执行一次续期任务,检查证书文件和日志;
  6. 运行Nginx配置检查,成功后再平滑重载;
  7. 确认cron或systemd timer已创建,并配置到期与失败告警。
Nginx SSL证书路径与自动续期配置示意
证书更新后必须先验证配置,再重载Nginx。

常用验证命令

# 检查 Nginx 配置
sudo nginx -t

# 查看证书主体、签发者和有效期
sudo openssl x509 -in /etc/nginx/ssl/example.pem \
  -noout -subject -issuer -dates

# 配置检查通过后平滑重载
sudo systemctl reload nginx

# 检查当前用户的定时任务
crontab -l

# 若使用 systemd timer,查看计时器
systemctl list-timers --all

文件名和路径应替换为实际值。不要在不清楚脚本行为时直接使用curl ... | bash,也不要把私钥内容复制到工单、评论或公开日志。

怎么确认外部访问已经使用新证书?

  1. 从浏览器查看域名证书的签发者和到期日;
  2. 从服务器外部用OpenSSL检查443端口返回的证书;
  3. 确认CDN、负载均衡或反向代理是否仍缓存旧证书;
  4. 检查HTTP到HTTPS跳转、证书链和多个域名覆盖;
  5. 将证书剩余天数纳入监控,不依赖人工记忆。

自动续期失败的排查顺序

  • 定时任务是否实际运行、环境变量和工作目录是否正确;
  • 域名解析、80/443端口或验证文件是否可访问;
  • 证书目录权限、磁盘空间和系统时间是否正常;
  • Nginx配置检查是否失败,旧进程是否仍在使用旧证书;
  • 任务令牌、控制台任务或证书状态是否发生变化。

端口问题可参考VPS常用端口与安全组,网站访问异常按云服务器IP与端口排查处理,系统安全设置见VPS上线前安全清单

需要部署网站服务器时,可在萤光云VPS产品页查看当前实例;WordPress配置参考WordPress服务器配置指南

相关推荐

赞(496)
未经允许不得转载:VPS知识分享站 » 萤光云SSL证书自动续期:Nginx部署、验证与排错