站点运营

站点运营:HTTPS 證书與协议自查,抓取不该卡在握手环节

蜘蛛抓取從 TLS 握手開始,證书過期、域名不匹配、中間證书缺失或协议跳轉混乱,都會让請求在拿到内容之前就中断。本文给出一份可执行的證书與协议自查清單,包括检查項、抽查方法和換證书前後的注意事項。

站点运营

站点运营:HTTPS 證书與协议自查,抓取不该卡在握手环节

蜘蛛抓取一個頁面,第一步不是下载 HTML,而是和服務器完成 TLS 握手。如果證书過期、域名不匹配、中間證书缺失,或者 HTTP 與 HTTPS 两個版本各自為政,抓取請求很可能在拿到任何内容之前就被中断。這類問题在浏览器里往往只表現為“点一下繼續訪問”,容易被忽略,但對爬虫来说常常是硬性失敗。

為什么握手問题容易被忽视

人工訪問时,浏览器會给證书错誤一個“繼續前往”的按钮;抓取程序通常不會。多數爬虫遇到證书校驗失敗會直接终止该次請求,记為连接错誤,而不是把頁面降級抓取。结果就是:舊頁面看起来還在,但回訪失敗;新連結已经放出,却從未被抓。

證书與协议自查清單

  • 有效期:確認到期時間,設定至少提前 30 天的提醒;自動續期也要有人盯失敗告警。
  • 覆盖域名:主域名、www、移動端域名、静態资源域名是否都在證书范围内,通配符證书是否覆盖多級子域名。
  • 證书鏈:中間證书是否完整部署,用在线檢測工具或命令行查看鏈路是否完整。
  • 协议版本:關掉過舊的 TLS 版本,保留主流版本,避免老客戶端與爬虫协商失敗。
  • 跳轉唯一性:HTTP 到 HTTPS、非 www 到 www 最好一次跳轉到位,不要串联多次。
  • 混合内容:HTTPS 頁面里若還引用 HTTP 的图片、脚本、样式,浏览器會拦截,抓取端也可能拿不到這些资源。
  • 服務器時間:系統時間偏差過大會導致證书校驗直接失敗,這個坑排查时很容易漏掉。
  • CDN 與源站:CDN 上的證书和源站證书要同步更新,避免只換了一邊。

HSTS 要不要開

HSTS 能让浏览器强制走 HTTPS,但一旦開啟並設定較長有效期,回退會比較麻烦。建议先確認全站资源都已 HTTPS 化,頁面内也没有硬编碼的 http 地址,再考虑開啟,暂时不必急着提交预加载列表。

怎么查,查哪些頁面

  1. 用檢測工具看一遍證书鏈、有效期和服務器支持的协议版本。
  2. 抽查首頁、栏目頁、詳情頁、静態资源域名各若干條 URL,確認都能正常建立连接。
  3. 在服務器日誌或抓取日誌里筛 SSL、握手、连接超时相關记錄,看是否有集中出現的時間段。
  4. 在站長平台查看抓取错誤與安全類提示,確認没有大面积失敗。

換證书與調整协议时的注意事項

換證书尽量避開抓取高峰,先在一台或一部分节点上驗證,再全量替換。协议跳轉規則的調整最好一次改到位,改完後检查站内是否還残留 http 連結,尤其是導航、頁脚、图片地址和站点地图里的地址。調整後的几天内,观察日誌中回訪量是否恢复,抓取错誤是否回落。

證书和协议是抓取的入场券。内容、结构、内鏈做得再好,握手失敗一次,後面的工作都無從谈起。