站点运营

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

HTTPS 配好之後還有两件事要定期看:證书是否临近到期、是否覆盖所有子域,以及頁面里有没有残留的 http 资源引用。本文给出一份可执行的检查清單,包括證书鏈、CDN 與源站、HSTS 風險点,以及換證书和換域名时容易踩的坑。

站点运营

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

给站点配了 HTTPS,不代表這件事就結束了。證书有有效期,頁面里也可能残留 http:// 的引用,這两件事平时不顯眼,一旦出問题却是整站級別的:訪客看到浏览器警告直接登出,监控和抓取工具拿不到正常响應,日誌里的抓取失敗率會突然上升。對做站点运营的人来说,這是一項需要排進例行检查的工作,而不是出了問题才想起来的事。

證书本身要查什么

證书不是配一次就長期有效的资产。下面几項建议按固定周期過一遍。

  • 到期時間:確認剩余有效期,並確認自動續期真的在跑。續期失敗往往是因為驗證方式變了、DNS 记錄被改動,或者續期脚本早就没在执行。
  • 覆盖的域名:主域、www、移動端域名、接口域名、CDN 回源域名分別用什么證书。單域名證书換成通配符或多域名證书时,容易漏掉某個子域。
  • 證书鏈完整:中間證书缺失时,部分客戶端能訪問、部分不能,表現得很随机。用命令行工具或在线檢測看整條鏈是否完整。
  • 协议版本與加密套件:太老的 TLS 版本會被現代客戶端拒绝,太新的要求又可能挡住舊设备,按訪客设备情况取一個合理区間。
  • CDN 與源站两邊:用了 CDN 之後,訪客看到的是邊缘节点的證书。源站證书過期可能不影响訪客,但會影响回源和直连抓取,两邊都要看。

混合内容是更容易被忽略的一半

頁面整体是 https,里面却引用了 http 的资源,浏览器會拦截或给出警告。图片、样式、脚本、字体、iframe、接口請求、favicon 都算。它通常出現在几個地方:早期寫死的绝對地址、第三方组件里的預設地址、編輯器粘贴進来的外鏈图片,以及模板里遗留的舊域名。

检查方式比較直接:在浏览器控制台看有没有混合内容提示,或者用抓取工具把站内頁面跑一遍,筛出所有以 http:// 開头的资源地址。還有一個细节是 CSS 文件里的 url() 和 JS 動態拼接出来的地址,這些在頁面源碼里不一定看得见,需要單獨過一遍。

別忘了頁面里指向自己的绝對連結。如果内鏈寫成 http://,訪客每次点击都要多跳一次,相当于白花一跳。

換證书、換域名时容易踩的坑

  • HSTS:開啟之後浏览器會强制走 https,一旦證书出問题,连繼續訪問的入口都没有。開啟前先確認所有子域都能正常 https 訪問。
  • 预發和内網环境:這些环境经常用自簽證书,抓取和监控工具訪問时會报错,別把這類报错当成线上故障處理。
  • 站点地图和结构化資料里的地址:這些文件里如果寫着 http 地址,會把發現入口指向舊协议,值得一起改掉。
  • 操作時間点:避開流量高峰,改完立即從不同網絡环境驗證一次,包括移動網絡。

把它變成一條例行項

不需要复杂的系統。把證书到期時間记進日歷,提前两周提醒;准备一條命令或一個檢測脚本,需要时跑一次;每次站点改版、換 CDN、加子域之後,顺手检查一遍协议和资源地址。這些事情單次花不了多少時間,但能避免一次整站不可用的意外。

證书和协议這類問题,平时做得對没有任何存在感,出問题时却是全站級別的。與其等訪客反馈或抓取失敗来提醒,不如把它放進固定的检查清單里。