HTTPS 现在基本是默认配置,多数站点上线时顺手就把证书装好了,之后很少有人再回头看。但证书有有效期,配置也会随服务器迁移、CDN 切换而变化,这些细节一旦出问题,影响的不只是用户,蜘蛛的抓取同样会失败。下面梳理几个容易漏掉的检查点。
一、证书到期:最容易忽略,也最容易全线中断
证书过期时,浏览器会给出拦截提示,蜘蛛访问也会拿到错误响应或直接中断连接,日志里往往表现为整站抓取量骤降、返回码异常。建议把下面几件事固定成例行检查:
- 记录每张证书的到期时间,提前三十天设提醒;
- 能自动续期就自动续期,但自动续期也要有人确认真的成功了;
- 一张证书覆盖多个域名时,确认主域名、www、备用域名是否都在 SAN 列表里;
- CDN、负载均衡、独立子域要分别盘一遍,别只查了主站;
- 测试环境与预览域名也要管住,方便随时打开检查。
证书问题的特点是平时完全无感,出事就是全站级别的。它的排查成本很低,收益却很直接,适合放进每周的固定检查项。
二、混合内容:页面能打开,不等于抓取顺畅
站点从 HTTP 迁到 HTTPS 之后,如果页面里还引用着 http:// 开头的资源,浏览器会提示“不安全内容”,并可能直接拦截加载。对蜘蛛来说,这些资源抓不到,页面虽然返回 200,实际渲染出来的效果是残缺的。
常见的残留位置
- 文章正文里手动粘贴的外链图片;
- 老模板里的字体文件、图标库、统计脚本;
- 嵌入的视频、地图、第三方组件;
- 硬编码在数据库里的历史内容。
自查方法
打开浏览器开发者工具,看 Network 面板里是否有被拦截的请求,控制台通常也会给出具体地址。更彻底的做法是抓取一批有代表性的页面,在返回的 HTML 里搜索 http:// 关键字,逐条确认为什么还留着、能不能改掉。
三、协议跳转与 HSTS
从 http 到 https 的跳转应尽量一步到位,避免 http → https → 带 www 的多跳链路,多跳会拖慢响应,也让蜘蛛多做无用功。同时注意:
- 站内链接、站点地图、canonical 里直接写最终的 https 地址,不要依赖跳转;
- 跳转状态码用 301,不要用 302 长期顶着;
- HSTS 开启后浏览器会强制走 HTTPS,配置出错时排查反而更麻烦,建议确认跳转稳定后再启用。
四、TLS 配置与访问速度
证书本身没问题,握手过程也可能拖慢首字节时间。可以关注证书链是否完整、是否启用了较新的 TLS 版本、是否支持会话复用。用了 CDN 的站点,回源配置和边缘节点配置要保持一致,否则会出现“有的地区能抓、有的地区报错”的情况。
五、上线前后的自查顺序
- 确认证书有效,且覆盖所有需要使用的域名;
- 用几个不同网络环境访问首页和内页,看是否有拦截提示;
- 抓取页面源码,搜索 http:// 与旧域名的残留;
- 检查跳转链路是否为单跳 301;
- 观察服务器日志,确认蜘蛛抓取的返回码正常;
- 把证书到期时间写进运维日历。
这些检查单次做完可能只要十几分钟,但能避开很多“突然打不开、突然没抓取”的意外。它属于典型的底层工作:不出问题的时候没人会注意,出问题的时候却是全局性的。