站点运营

站点运营:HTTPS 與證书自查,別让過期證书和混合内容拖住抓取

HTTPS 装好之後最容易被遗忘。證书會過期,自動續期可能悄悄失敗,頁面里残留的 http 资源還會造成混合内容。本文给出一份可执行的證书與混合内容自查清單,從到期時間、域名覆盖、跳轉鏈路到资源替換,帮你把這件基础设施類的事放進日常巡检。

站点运营

站点运营:HTTPS 與證书自查,別让過期證书和混合内容拖住抓取

為什么 HTTPS 問题容易被忽略

站点跑起来之後,HTTPS 往往是最不被想起的一环。證书装好那天能用,之後很少有人再点開地址栏看那把鎖。可證书是有有效期的,通常 90 天到一年不等;自動續期的脚本也可能因為某次服務器迁移、權限變更或目錄調整而静默失敗。等到證书過期,最先感知到的可能不是你,而是訪客看到的安全警告,以及抓取工具在握手阶段就断掉的连接。

比過期更隐蔽的是混合内容:頁面本身走 HTTPS,但里面仍引用着 HTTP 的图片、脚本、样式或 iframe。浏览器會把這類资源当作不安全内容拦截或降級,结果就是图片不顯示、样式错乱,蜘蛛看到的頁面和你想让它看到的並不一样。

一份可执行的證书自查清單

1. 到期時間與續期狀態

  • 记錄目前證书的簽發時間和到期時間,把提醒设在到期前 30 天,而不是前 3 天。
  • 確認自動續期任務真的在跑,查計划任務或定时器,看最近一次續期日誌,不要只看配置文件還在。
  • 續期成功後重新加载 Web 服務,確認新證书已生效,舊證书没有残留在缓存里。

2. 域名覆盖范围

  • 核對證书的 SAN 列表,確認裸域、www 域以及實际在用的子域名都在里面。
  • 如果用了泛域名證书,注意它一般只覆盖一級子域,多級子域要單獨確認。
  • 站点實际訪問的域名和證书里的域名要對得上,避免訪客被提示證书不匹配。

3. 證书鏈是否完整

有些服務器只装了站点證书,漏掉中間證书。桌面浏览器可能自動补齐,但部分客戶端和抓取工具會直接判定證书不可信。可以用在线檢測工具或命令行查看完整的證书鏈,確認没有缺口。

4. 跳轉鏈路是否干净

  • HTTP 應一次性 301 到 HTTPS,避免 http 到 https、再到带 www 或不带 www 的多級接力。
  • 检查是否仍有頁面用 302 跳 HTTPS,临时跳轉不利于地址统一。
  • 確認跳轉後的地址、canonical 标簽和 sitemap 里的寫法一致,都使用 https 前缀。

5. 混合内容排查

  1. 打開几個代表性頁面,用浏览器開發者工具的控制台和網絡面板,篩選出 http 開头的請求。
  2. 重点看歷史文章里的外鏈图片、舊編輯器粘贴進来的 iframe、第三方統計或客服脚本。
  3. 能替換的资源換成 https,替換不了的直接下线或改成文字連結。
  4. 在頁面模板层面统一使用 https 绝對地址,减少以後再出同類問题。

几個容易踩的细节

HSTS 可以强制浏览器走 HTTPS,但開啟前要确保所有子域名都已支持 HTTPS,否則會把還没配好的子域直接鎖死。建议先用較短的有效期试執行,观察一阵再延長。

證书續期不會自動帮你改内容。如果站内大量内鏈、图片地址還寫着 http,續期再成功也救不了混合内容。

測試环境和正式环境共用證书、共用配置的情况不少。改動前先確認影响范围,別把測試站的問题带到主站。

證书和 HTTPS 属于基础设施,平时不出声,一出問题就是全站級別的。把它放進日常巡检,比出事後再救火省事得多。

把它變成例行检查

  • 每月看一眼證书剩余天數,自動續期成功也要人工確認一次。
  • 每次改版、換服務器、換 CDN 之後,重新跑一遍跳轉和混合内容检查。
  • 把 https 寫進模板和編輯規范,新内容發布时就不會再带回 http 资源。

這些检查花不了多少時間,却能把一類常见的抓取和訪問故障挡在门外。站点运营里很多工作都是這样:不追求立竿见影,只求別在關键时刻掉鏈子。