互联网教程

证书怎么部署与自动续期

证书装上去只是开始,真正的活是让它别过期。免费证书 90 天一轮,靠人记必然漏,必须用自动续期 + 到期监控双保险。

发布者:黔序科技依据官方文档核验:2026 年 10 月

核心结论

  • nginx 配 ssl_certificate 与私钥路径即可
  • 用 acme.sh 或 certbot 做自动续期并 reload
  • 续期后必须 reload,否则仍用旧证书

一句话:部署两件事:把证书与私钥路径写进 nginx,把续期做成定时任务释并在续期后重载 nginx。缺第二步,证书到期那天全站告警。

部署步骤

  1. 上传证书把 fullchain(含中间证书)与私钥放到固定目录,如 /www/ssl/。
  2. 改 nginx 配置在 server 块里配 ssl_certificate 与 ssl_certificate_key,并加 ssl_protocols TLSv1.2 TLSv1.3。
  3. 检查语法并重载nginx -t 通过后 nginx -s reload。
  4. 验证链完整用在线工具检查,缺中间证书时部分安卓机与老版本客户端会握手失败。

自动续期(acme.sh)

  1. 安装用官方脚本安装 acme.sh,安装后会自动生成 cron 任务。
  2. 签发用 DNS 或 webroot 方式签发,DNS 方式支持通配符。
  3. 安装证书用 --install-cert 指定证书路径与重载命令,续期后自动执行。
  4. 验证用 --renew --force 手动跑一次,确认文件更新且 nginx 重载成功。

注意:续期成功但服务没 reload,是「证书明明续了却还报过期」的唯一原因。安装证书时的 reloadcmd 必须配,且要确认执行用户有重载权限。

监控

  • 用外部监控服务对 HTTPS释 做定点探测,证书剩余天数少于 14 天告警。
  • 续期脚本把结果写到日志,失败时发通知,别让它静默失败。
  • 宝塔面板的证书列表会显示到期时间,可作为第二道人工检查。

常见问题

  • 403 during validation:文件验证路径被 nginx 规则拦截,检查 /.well-known/ 是否可访问。
  • DNS 验证失败:TXT 记录未生效或 API释 密钥权限不足。
  • 证书域名释不匹配:证书是 www 版却用在不带 www 的域名上,需要分别签发或申请通配符。

资料来源

  • acme.sh 官方文档:签发、安装证书与 reloadcmd 配置。
  • certbot 官方文档:webroot 与 dns 插件用法。
  • nginx 文档:ssl_certificate、ssl_protocols 指令说明。

常见问题

宝塔面板的证书会自动续期吗?

面板申请的 Let's Encrypt 证书通常会自动续,但前提是续期任务正常执行、站点仍绑定该域名。建议定期在面板看剩余天数并抽查一次。

续期会不会导致网站中断?

reload 是平滑重载,不会断开现有连接。但配置写错会导致 reload 失败(旧进程继续跑,新证书没生效),所以每次改完先 nginx -t。

通配符证书续期需要什么?

只能用 DNS 验证,需要 DNS 服务商的 API 密钥。密钥权限要限定为解析修改,不要给账号全权限。

相关阅读