站点运营

站点运营:HTTPS 證书與混合内容自查,別让一個過期證书把整站挡在门外

證书過期、混合内容、子域未覆盖,都會让訪客被浏览器拦下,也會让搜尋蜘蛛抓取失敗。本文梳理證书需要覆盖的域名范围、混合内容的常见藏身處、續期告警的設定方式以及出問题後的處理顺序,把這類检查纳入日常巡检,避免在流量高峰时临时救火。

站点运营

站点运营:HTTPS 證书與混合内容自查,別让一個過期證书把整站挡在门外

不少站点在改版、上 CDN 或換服務器之後,HTTPS 看起来一切正常,直到某天浏览器彈出安全警告,訪客進不来,搜尋蜘蛛抓取也返回连接错誤。這類問题往往不是突然發生的,而是證书到期、资源混用、域名没覆盖這些细节一点点累积的结果。

證书過期:最容易被忽略的低級故障

證书有明确的有效期,通常是一年或三個月。它不會提前提醒你,到期那一刻直接失效。常见的踩坑场景有:

  • 證书只装在主域名上,www 或其他子域没装,訪問备用入口直接报错。
  • 用了 CDN 或负载均衡,源站證书續了,邊缘节点的證书忘了續。
  • 自動續期脚本因為驗證方式變更、API 密钥失效等原因静默失敗,長期没人發現。
  • 證书鏈不完整,部分老设备或客戶端提示不受信任。

自查方式很直接:用浏览器看鎖图标里的有效期,用命令行工具查看服務端返回的證书信息,把主域、www 和關键子域都查一遍。不要只看一個域名就下结论。

混合内容:頁面是 HTTPS,资源還在走 HTTP

頁面本身通過 HTTPS 打開,但引用的图片、脚本、样式表、字体、接口地址仍然寫着 HTTP。浏览器會拦截或降級處理這些资源,常见表現是样式错乱、图片不顯示、按钮点了没反應。對蜘蛛来说,抓取到的頁面内容也可能是残缺的。

排查时重点看這几類位置:

  • 模板和編輯器里硬编碼的 HTTP 图片地址、外鏈资源。
  • 第三方統計、客服、广告脚本的引入地址。
  • 資料库里存的老内容,正文中带出的绝對地址。
  • 接口域名與静態资源域名是否都支持 HTTPS 訪問。

處理思路是先把资源域名统一到 HTTPS,再全站替換正文里的 HTTP 引用,最後用浏览器控制台確認没有混合内容告警残留。

證书需要覆盖哪些域名

證书不是装了主域就萬事大吉,至少確認這几点:

  1. 主域名與 www 版本都在證书覆盖范围内,或者其中一個做 301 跳轉统一入口。
  2. 用到的静態资源子域、图片子域、接口子域是否需要各自證书,還是能用通配符證书一次覆盖。
  3. 證书支持的域名數量是否够用,避免後續加子域又要重新簽發。
  4. 跳轉鏈路里涉及的每個域名,是否都能正常完成 HTTPS 握手。
一個訪問地址從 HTTP 跳到 HTTPS、從非 www 跳到 www,中間每一跳都必须能建立安全连接。鏈條断在哪一环,訪客和蜘蛛就停在哪一环。

监控與續期:把人工检查變成自動告警

靠人记日期不現實,建议至少做两件事:

  • 設定到期提醒,提前 30 天和 7 天各告警一次,告警發到确實有人看的渠道。
  • 监控續期任務是否真的执行成功,而不是只要配置了自動續期就放心。

另外可以在站点健康监控里加一條檢測:定时請求首頁,检查證书剩余有效期、响應狀態碼,以及頁面是否出現混合内容。一旦異常,先看告警時間点,再對照服務器日誌,確認蜘蛛抓取是否同步出現失敗。

出問题时的處理顺序

  1. 先分清是證书問题還是资源問题,看报错是證书不受信任還是资源被拦截。
  2. 證书過期就尽快續期並重新加载服務配置,注意別把舊證书残留在 CDN 缓存里。
  3. 混合内容先修模板和公共组件,再批量處理歷史正文,避免修完又冒出来。
  4. 恢复後抽查几個關键頁面,確認浏览器無告警、抓取返回正常。

這類問题修起来不复杂,麻烦的是發現得太晚。把證书有效期和混合内容纳入日常巡检,比出事之後临时救火省事得多。