HTTPS证书快过期别等用户打不开:Nginx + Certbot 自动续期排查实战
网站 HTTPS 证书过期是非常典型的“小问题拖成生产事故”。证书一过期用户浏览器会出现安全警告API 调用可能失败小程序、App、支付回调、Webhook 都可能受影响。更麻烦的是很多证书其实已经续期成功但 Nginx、负载均衡或 CDN 仍在使用旧证书最终表现还是“用户打不开”。本文按生产排查顺序写先确认当前线上证书到期时间再检查 Certbot 自动续期接着验证 Nginx 配置和 reload最后排查 CDN、负载均衡、多台服务器和权限问题。适用于腾讯云、阿里云、AWS、Azure、Oracle Cloud、普通 VPS 上的 Nginx HTTPS 站点。参考来源Certbot 官方 User Guidehttps://eff-certbot.readthedocs.io/en/stable/using.htmlNginx 官方 HTTPS 配置文档https://nginx.org/en/docs/http/configuring_https_servers.html腾讯云 Nginx 服务器 SSL 证书安装部署https://cloud.tencent.com/document/product/400/35244Let’s Encrypt FAQhttps://letsencrypt.org/docs/faq/1. 先看线上证书而不是只看服务器文件第一步从外部检查域名当前返回的证书DOMAINexample.comecho|openssl s_client-connect${DOMAIN}:443-servername${DOMAIN}2/dev/null|openssl x509-noout-subject-issuer-dates重点看notBefore... notAfter... subject... issuer...如果notAfter已经很近说明线上证书确实快到期。注意这里查的是用户真实访问到的证书比你在服务器目录里看到的文件更可靠。2. 查 Certbot 管理了哪些证书如果使用 Certbotsudocertbot certificates你会看到证书名称、域名列表、到期时间、证书路径和私钥路径。典型输出包括Certificate Name: example.com Domains: example.com www.example.com Expiry Date: 2026-09-10 Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem Private Key Path: /etc/letsencrypt/live/example.com/privkey.pemCertbot 官方文档说明certbot reconfigure可用于更改证书续期选项并通过测试续期验证新选项成功后应用到后续续期。生产环境不要随便改 renewal 配置先做 dry-run。3. 先 dry-run不要直接正式续期sudocertbot renew --dry-run如果成功说明 ACME 验证链路基本可用。如果失败常见原因包括80端口没有开放。DNS解析到错误机器。Nginx 没有把/.well-known/acme-challenge/放行。Webroot 路径错误。Cloudflare/CDN/WAF 拦截了验证请求。机器时间不准。续期配置里的域名已经不用或解析已变化。4. 正式续期后必须确认 Nginx 加载新证书正式续期sudocertbot renew然后检查 Nginxsudonginx-tsudosystemctl reload nginxNginx 官方 HTTPS 配置文档说明HTTPS server 需要在 server block 中启用ssl监听并指定ssl_certificate和ssl_certificate_key。也就是说Nginx 实际加载哪个证书取决于配置文件里写的路径。示例server { listen 443 ssl http2; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; location / { proxy_pass http://127.0.0.1:3000; } }如果 Nginx 配置指向的是旧目录比如/usr/local/nginx/conf/cert/example.crt而 Certbot 更新的是/etc/letsencrypt/live/example.com/fullchain.pem续期成功也不会生效。5. 自动续期要看 systemd timer 或 cron很多 Linux 发行版通过 systemd timer 管理 Certbot 自动续期systemctl list-timers|grepcertbot systemctl status certbot.timer journalctl-ucertbot.timer-n50--no-pager journalctl-ucertbot.service-n100--no-pager也有机器用 cronsudocrontab-lls-lah/etc/cron.d/grep-Rcertbot/etc/cron*2/dev/null如果没有自动续期任务就要补上。Certbot 安装方式不同系统默认行为可能不同不要假设“装了就会自动续”。6. 续期后自动 reload Nginx推荐使用 deploy hook只在证书实际更新后执行 reloadsudocertbot renew --deploy-hooksystemctl reload nginx如果写入配置可创建sudomkdir-p/etc/letsencrypt/renewal-hooks/deploysudotee/etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh/dev/nullEOF #!/bin/sh nginx -t systemctl reload nginx EOFsudochmodx /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh然后再跑sudocertbot renew --dry-run7. 腾讯云/手动证书场景如果证书来自腾讯云 SSL 证书控制台部署到 Nginx 时通常需要下载 Nginx 证书包将证书文件和私钥上传到服务器并在 Nginx 配置中指定路径。腾讯云文档也提醒安装证书前需要开启 HTTPS 默认端口 443。手动证书的常见问题证书文件和私钥不匹配。证书链不完整。443端口未开放。配置后没有nginx -t。修改配置后没有 reload。多台服务器只更新了一台。CDN或负载均衡还在用旧证书。私钥文件权限建议严格限制sudochownroot:root /path/to/private.keysudochmod600/path/to/private.key8. CDN、负载均衡和多台服务器要单独排查如果网站前面有 CDN、WAF、负载均衡用户看到的证书不一定来自源站 Nginx。排查顺序查浏览器看到的证书颁发者和到期时间。绕过 CDN 查源站证书。查负载均衡 HTTPS 监听证书。查每台后端服务器 Nginx 证书。确认证书更新后是否同步到所有入口。绕过 CDN 可以临时指定 Hostcurl-vk--resolveexample.com:443:1.2.3.4 https://example.com/这里的1.2.3.4替换成源站 IP。9. 最终验证外部验证DOMAINexample.comecho|openssl s_client-connect${DOMAIN}:443-servername${DOMAIN}2/dev/null|openssl x509-noout-issuer-subject-datescurl-Ihttps://${DOMAIN}Nginx验证sudonginx-tsudosystemctl status nginx --no-pagersudotail-n50/var/log/nginx/error.log业务验证首页能打开。登录接口正常。API 回调正常。小程序/App 无证书错误。CDN缓存刷新后仍正常。监控没有 5xx 异常。10. 预防清单建议至少做这些证书到期前30天告警。每周自动检查一次线上证书notAfter。Certbot dry-run 纳入巡检。deploy hook 中执行nginx -t reload。CDN/负载均衡证书到期也纳入监控。证书路径、域名、续期方式写入运维文档。多台服务器统一证书分发或统一在入口层终止 TLS。HTTPS 证书续期不是一次性配置而是长期运维流程。真正可靠的做法是把“证书到期时间、自动续期、Nginx reload、CDN/负载均衡同步、外部验证”连成闭环。这样即使证书30天后才到期也能提前发现问题而不是等用户截图告诉你网站打不开。

相关新闻

Word文档内容丢失恢复全攻略:从紧急排查到数据修复

Word文档内容丢失恢复全攻略:从紧急排查到数据修复

1. 从“一片空白”到“失而复得”:一个文档编辑者的自救指南那天下午,我正对着一个即将提交的年度报告做最后的润色。就在我保存文档、关闭再重新打开之后,最令人头皮发麻的一幕发生了:昨天还密密麻麻写了十几页的Word文档&#x…

2026/8/6 5:58:30 阅读更多 →
2026年值得信赖的ai建站选哪家?平台对比大揭秘来啦!

2026年值得信赖的ai建站选哪家?平台对比大揭秘来啦!

2026年值得信赖的ai建站选哪家?平台对比大揭秘来啦!艾瑞咨询《2026年中国企业数字化建站行业白皮书》里有个挺扎心的数:国内AI建站渗透率破了68%,但抽样超1200家中小企业,仅31%在生成站点后半年仍持续续费且搜索流量正…

2026/8/6 5:58:30 阅读更多 →
CAD倒圆角命令FILLET全解析:从工程原理到高效绘图技巧

CAD倒圆角命令FILLET全解析:从工程原理到高效绘图技巧

1. 先搞清楚倒圆角到底解决什么问题,别上来就点命令很多人学CAD,看到“倒圆角”这个命令,第一反应就是“哦,就是让角变圆”。这个理解没错,但太浅了。在实际画图,尤其是机械、建筑、产品设计里,…

2026/8/6 5:57:30 阅读更多 →

最新新闻

深入解析ADC量化误差:从原理到工程实践

深入解析ADC量化误差:从原理到工程实践

1. 从一次采样失真说起:为什么你的ADC读数总在跳?最近在调试一个高精度温度监测项目,用的是STM32F407的ADC。硬件上,分压电阻、基准电压、滤波电容都按手册精心设计,软件里也做了滑动平均滤波。但实际跑起来&#xff0…

2026/8/6 7:29:26 阅读更多 →
PG 导出表为excel iconv 乱码

PG 导出表为excel iconv 乱码

一、postgresql数据导出 将pg数据的查询结果导出到excel需要分三步: 第一步:导出到csv 1 \COPY (select * from * where *) to /tmp/test_data.csv CSV HEADER; 第二步:解决中文乱码 iconv -f utf-8 -t gb18030 /tmp/test_data.csv -o …

2026/8/6 7:29:26 阅读更多 →
百考通助手:AI赋能引导,助力每一份研究从良好开端走向卓越成果

百考通助手:AI赋能引导,助力每一份研究从良好开端走向卓越成果

在数字化时代,市场调研、产品设计、学术研究等场景中,问卷设计作为核心环节,直接影响着数据收集的质量与工作推进的效率。传统问卷设计往往面临流程繁琐、耗时耗力、问题设计不精准等痛点,而百考通(https://www.baikao…

2026/8/6 7:29:26 阅读更多 →
【Agent到底是什么?Agent与LLM的关系 一篇文章告诉你】

【Agent到底是什么?Agent与LLM的关系 一篇文章告诉你】

不知道你有没有过这种困扰,身边的人都在学习Agent同时也在劝你学习Agent,但是没有人告诉过你Agent到底是什么,它能解决什么问题,怎样才能学习它?这篇文章帮你解决这个问题。 一. Agent是什么? 1.1 LLM和Age…

2026/8/6 7:29:26 阅读更多 →
如果留意高汇平台日常查看效率怎么样?

如果留意高汇平台日常查看效率怎么样?

如果留意高汇平台日常查看效率,怎么样?把如果留意日常查看效率,怎么样放进真实使用情境里观察,高汇平台是否重视基础体验就会更清楚。从服务秩序角度观察,高汇平台更强调清楚说明和连续服务,而不是堆叠热闹…

2026/8/6 7:29:26 阅读更多 →
Unity与Photoshop色彩管理:Linear与sRGB工作流全解析

Unity与Photoshop色彩管理:Linear与sRGB工作流全解析

1. 项目概述:从一次“颜色灾难”说起几年前,我接手一个Unity项目,美术同学在Photoshop里精心绘制了一套UI图标,色彩鲜艳,渐变过渡自然。但当他把切图导入Unity,运行游戏后,整个人都懵了——原本…

2026/8/6 7:28:26 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →