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

部署前提与安全检查
- 域名已正确解析到服务器,Nginx当前配置可以正常启动;
- 已在官方控制台创建证书和自动续期任务;
- 服务器具备脚本所需工具,且系统时间和DNS正常;
- 证书目录仅允许必要账号读取,私钥不得写入公开目录或版本库;
- 执行任何下载脚本前,确认URL域名、HTTPS证书和脚本内容;
- 保留当前可用证书和Nginx配置备份,以便续期失败时回滚。
推荐的部署顺序
- 在Nginx站点配置中使用证书和私钥的绝对路径;
- 创建受限的证书目录,例如
/etc/nginx/ssl,并设置最小权限; - 从萤光云当前证书任务页面复制续期命令,不使用第三方转载命令;
- 先查看脚本再执行,确认下载地址、写入目录、定时任务和重载命令;
- 手动执行一次续期任务,检查证书文件和日志;
- 运行Nginx配置检查,成功后再平滑重载;
- 确认cron或systemd timer已创建,并配置到期与失败告警。

常用验证命令
# 检查 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,也不要把私钥内容复制到工单、评论或公开日志。
怎么确认外部访问已经使用新证书?
- 从浏览器查看域名证书的签发者和到期日;
- 从服务器外部用OpenSSL检查443端口返回的证书;
- 确认CDN、负载均衡或反向代理是否仍缓存旧证书;
- 检查HTTP到HTTPS跳转、证书链和多个域名覆盖;
- 将证书剩余天数纳入监控,不依赖人工记忆。
自动续期失败的排查顺序
- 定时任务是否实际运行、环境变量和工作目录是否正确;
- 域名解析、80/443端口或验证文件是否可访问;
- 证书目录权限、磁盘空间和系统时间是否正常;
- Nginx配置检查是否失败,旧进程是否仍在使用旧证书;
- 任务令牌、控制台任务或证书状态是否发生变化。
端口问题可参考VPS常用端口与安全组,网站访问异常按云服务器IP与端口排查处理,系统安全设置见VPS上线前安全清单。
需要部署网站服务器时,可在萤光云VPS产品页查看当前实例;WordPress配置参考WordPress服务器配置指南。







