站点运营

站点运营:HTTPS 与证书自查,别让抓取卡在握手这一步

HTTPS 早已是默认配置,但证书过期、证书链不完整、协议与域名版本不统一等问题仍会偶发。本文梳理证书有效期、域名覆盖、跳转链路、混合内容与 CDN 节点等自查点,给出一套可执行的检查顺序,帮助站点在蜘蛛访问时保持稳定的握手与响应。

站点运营

站点运营:HTTPS 与证书自查,别让抓取卡在握手这一步

HTTPS 现在基本是标配,很多站点配置好之后就很少再回头看。但证书是会过期的,域名会增减,CDN 节点会更换,配置也可能在某次迁移中被改回 HTTP。这些问题在浏览器里也许只是偶尔一次警告,对搜索蜘蛛来说却可能直接变成访问中断。

证书本身要核对的几件事

  • 有效期:到期时间是什么时候,是否进入了需要续期的窗口。建议提前 30 天以上开始处理,不要等到最后几天。
  • 域名覆盖:主域名、www 版本、移动端域名、其它绑定域名是否都在证书的域名列表里。新增子域后忘了加证书是常见疏漏。
  • 证书链完整性:只部署了站点证书、漏掉中间证书的情况并不少见。多数浏览器会自行补全,但部分客户端和爬虫对不完整的链更敏感,容易出现握手失败。
  • 签发来源:是否还在用自签名或不受信任的证书。测试环境切到正式环境时忘记替换的情况时有发生。
  • 协议版本与加密套件:是否只保留了过旧的协议,导致部分访问方无法协商成功。

协议与域名版本是否收敛到一处

http、https、带 www、不带 www,理论上会形成四个版本。理想状态是只保留一个可用版本,其余三个用 301 指向它,而且最好一跳到位。如果出现 http 跳到 https、再跳到 www、最后又跳到另一个地址,中间任何一环出问题都会让访问失败。

混合内容:页面里还挂着 http 资源

页面本身是 https,但正文里的图片、脚本、样式或字体仍然通过 http 地址引用。浏览器会给出混合内容警告,部分环境会直接拒绝加载。这类问题在模板、第三方统计代码、老编辑器上传的图片里最容易残留,可以查看页面源码,搜索 http:// 开头的资源引用。

CDN 与多节点环境下容易漏的地方

  • CDN 只配置了边缘证书,回源仍是 http,回源链路不稳定时节点可能返回错误。
  • 使用了泛域名证书,但新增的某个子域并不在证书覆盖范围内。
  • 节点缓存了旧的跳转规则,改完配置后不同地区访问到的版本不一致。

一套可执行的检查顺序

  1. 用命令行工具或在线检测服务查看证书详情,重点看有效期、域名覆盖和证书链是否完整。
  2. 分别访问 http、https、www、非 www 四个版本,记录跳转次数和最终落地的地址。
  3. 打开页面源码与控制台,查找仍然使用 http 的资源引用。
  4. 确认 HSTS 是否开启。开启之前,要先确认该域名下的所有子域都已支持 https,否则会把它们挡在外面。
  5. 把证书到期时间写进运维清单,设置提醒,不要依赖某个人记得。

发现问题后的处理顺序

先保证唯一版本的地址可以正常访问,再调整跳转规则,最后处理缓存和 CDN 节点。每次改动之后,隔一段时间查看服务器日志,确认蜘蛛拿到的响应码是否正常,有没有出现握手失败或大量 5xx。

证书和跳转属于访问层的基础设施,这一层出问题时,页面内容做得再好也没有机会被读到。定期花十分钟检查,比出问题后再排查要省事得多。