站点运营

站点运营:HTTPS 證书與混合内容自查,別让浏览器先给訪客一個警告

HTTPS 早已是預設配置,但證书過期、域名不匹配、頁面里混着 http 资源,仍會让浏览器彈出警告、让蜘蛛抓取中断。本文從證书有效期、證书鏈、混合内容、跳轉入口几個方面,整理一份可以照着做的自查流程,帮助站点把這類低級但高频的問题提前處理掉。

站点运营

站点运营:HTTPS 證书與混合内容自查,別让浏览器先给訪客一個警告

HTTPS 已经不是什么加分項,而是基本配置。但實际运营中,證书過期、域名不匹配、頁面里混着 http 资源這些問题仍然频繁出現。它們不會让網站立刻打不開,却可能让訪客先看到一屏安全警告,也可能让蜘蛛在抓取时直接报错登出。與其等浏览器提醒,不如把這几項自查放進日常巡检里。

一、證书本身要看三件事

證书問题里,最容易發現的是過期,最容易忽略的是覆盖范围和證书鏈。

1. 有效期與到期提醒

先確認目前證书的到期時間。免費證书通常 90 天,商业證书一年或两年。不要只靠记忆,最好在服務器或监控里設定到期提醒,提前 15 到 30 天触發。如果用了 CDN 或负载均衡,證书可能不在源站上,要分別检查每一层。

2. 域名覆盖范围

检查證书里的 SAN 字段是否包含了你實际在用的所有域名:带 www 和不带 www、主域名和子域名、移動端獨立域名等。如果只簽了主域名,訪問 www 时就會报错。通配符證书能覆盖一級子域,但通常不覆盖多級,比如 a.b.example.com 可能不在范围内。

3. 證书鏈是否完整

有些服務器只装了站点證书,忘了装中間證书。桌面浏览器可能自動补全,但部分移動端、舊客戶端或蜘蛛的抓取程序不一定能补。用在线工具或命令行检查时,如果提示“證书鏈不完整”,就把中間證书补上。

二、混合内容:最容易被漏掉的一類

混合内容指的是 https 頁面里加载了 http 资源。浏览器對它的處理越来越嚴格:图片、脚本、样式、字体、iframe 都可能被拦截或降級,地址栏的鎖形图标也可能消失。

常见的来源有:

  • 早年上传的图片,地址還是 http 開头;
  • 引用了外部 CDN 上的舊版 JS 库或字体文件;
  • 統計代碼、客服组件、视频嵌入代碼没有同步改成 https;
  • 資料库里存的文章正文包含 http 連結;
  • 站点地图或 RSS 里给出的地址仍是 http。

排查时,打開浏览器開發者工具的控制台,刷新頁面,看有没有 Mixed Content 警告。也可以直接搜尋資料库或模板文件里的 http:// 字符串。注意不要简單全局替換,先確認哪些是外部域名、哪些是自己站内的舊地址,再分別處理。

混合内容不一定阻止蜘蛛抓取,但它會让頁面在部分环境下加载失敗,訪客看到的可能是残缺的排版或空白区块。

三、http 到 https 的跳轉入口

如果同一份内容既能用 http 訪問,又能用 https 訪問,就多了一個重复入口。建议把 http 统一 301 到 https,並且尽量一步到位,不要先跳到 www 再跳 https,或者先跳 https 再跳 www。多重跳轉既拖慢訪問,也让抓取路径變复杂。

確認好最终使用的規范域名後,把其他组合都指向它。如果條件允许,可以配置 HSTS,让浏览器在一段時間内强制使用 https,减少中間人攻击和重复跳轉。但 HSTS 要谨慎開啟,確認所有子域都支持 https 之後再上,否則可能把自己挡在门外。

四、對抓取的實际影响

證书错誤和混合内容對蜘蛛的影响不太一样。證书過期、域名不匹配、證书鏈不完整,通常會让抓取請求直接失敗,蜘蛛看到的是一個错誤頁,而不是你的内容。混合内容則更多影响渲染和体驗,如果關键脚本被拦截,頁面可能顯示不全。

另外,如果服務器同时监听 80 和 443,但跳轉規則寫错,蜘蛛可能反复在 http 和 https 之間来回,浪費抓取频次。定期看服務器日誌里 4xx、5xx 和跳轉狀態碼的分布,能發現這類問题。

五、一份可以照着做的自查清單

  1. 检查證书到期時間,確認提醒机制已经生效。
  2. 確認證书覆盖了所有實际使用的域名和子域名。
  3. 用工具检查證书鏈是否完整。
  4. 打開開發者工具,看控制台有没有混合内容警告。
  5. 搜尋模板、資料库和配置里的 http 連結,逐條確認。
  6. 確認 http 到 https 的跳轉是一步完成,没有多余跳轉。
  7. 如果啟用了 HSTS,確認所有子域都能正常用 https 訪問。
  8. 在服務器日誌里观察證书错誤和跳轉相關的狀態碼變化。

這些检查不需要一次全做完,可以拆成每周或每月的小項。證书類的故障往往不是突然出現,而是到期前就埋下了提醒。把到期時間、跳轉規則和混合内容当成常規巡检的一部分,比等浏览器彈出警告再补救要從容得多。