网站慢排查实录:证书、CDN 与诊断方法论的教训
一、今天做了什么 1. 域名解析:renjiaxing.ren 的 A 记录 → 154.8.147.160(10 分钟生效) 2. 免费证书:申请腾讯云 90 天免费 DV 证书(TrustAsia CA) 3. 配置 HTTPS:Nginx 加载证书,HTTP 自动跳转 HTTPS 4. 排查"网站加载慢":最终发现是模板引用的境外 CDN 资源被墙 5. 资源本地化:font-awesome、jquery 下载到本地 static/,删除 busuanzi、mermaid 二、排查全程回顾(走弯路的每一步) 现象 电脑浏览器打开网站要 15-30 秒才出页面。手机秒开。 弯路 1:怀疑 Let’s Encrypt 证书的 OCSP 被墙 当时的证书:Let's Encrypt Windows curl 报错:CRYPT_E_REVOCATION_OFFLINE(吊销服务器离线) 分析:LE 的 OCSP 服务器在国内被墙,Windows schannel 检查吊销失败 行动:换腾讯云 TrustAsia 证书 结果:curl 不报错了,但 TLS 握手还是 15 秒——问题没解决 弯路 2:怀疑 TrustAsia 证书链的吊销检查 测试了所有吊销检查端点: ✓ 叶子证书 OCSP —— 0.19 秒(快) ✓ 中间证书 OCSP —— 快 ✓ 中间证书 CRL —— 快 ✓ 交叉根证书 CRL —— 0.29 秒(快,762 字节合法 CRL) 分析:TrustAsia 的"根证书"实际是波兰 Certum 交叉签发的, 怀疑 Windows 把交叉根当中间证书查 CRL → 查 Certum 波兰服务器超时 行动:开启 OCSP Stapling(服务器把吊销状态钉在握手包里) 结果:stapling 生效了(OCSP Response Status: successful), curl 还是 15 秒——问题依旧 弯路 3:怀疑 Windows 客户端自身 测试: ✓ 所有吊销检查 URL 直连都快 ✓ 服务器本地握手 4 毫秒 ✓ curl --ssl-no-revoke 秒过(证明问题在吊销检查) ✓ 手机同一 WiFi 秒进(排除网络路径问题) 行动:禁用 Windows 自动根证书更新(CTL 更新) 结果:curl 变快了!但浏览器还是慢——问题还在 弯路 4:真正的答案——F12 网络面板 浏览器 F12 → Network 标签 → 刷新 → 看到两个请求卡 30 秒: https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css https://cdn.jsdelivr.net/npm/jquery@3.6.3/dist/jquery.min.js 真相:jsDelivr CDN 在国内被墙! 模板 extend_head.html 是从 sulv 博客样例复制来的, 里面带了三个境外 CDN 引用:jsDelivr(两个)+ busuanzi 统计。 浏览器加载页面时死等这些资源超时——这就是"网站慢"的真正原因。 三、为什么一开始找不到? 复盘诊断过程,犯了三个错误: ...