站点运营

站点运营:HTTPS 與混合内容自查,別让浏览器把頁面标成不安全

站点從 http 迁到 https 之後,跳轉鏈和混合内容常被忽略。本文梳理常见藏身處、可照做的自查流程,以及修复时容易踩的坑,帮你把地址栏的安全提示和资源加载問题逐步收敛。

站点运营

站点运营:HTTPS 與混合内容自查,別让浏览器把頁面标成不安全

站点從 http 迁到 https,或者換過域名、接過 CDN 之後,最容易留下的是“半截加密”:主文档走 https,頁面里却還混着一批 http 资源。訪客看到地址栏的安全提示,浏览器還可能拦掉脚本和样式,頁面表現跟坏了差不多。這類問题不涉及玄学,逐項排查就能收敛。

先分清两類問题

一類是跳轉没做干净:http 地址仍然可訪問,或者 www 與非 www 各自返回 200,同一份内容出現多個入口。另一類是混合内容:頁面本身是 https,但 img、script、link、iframe、字体、接口請求里寫着 http。前者影响地址统一,後者直接影响渲染和安全提示。两類都要處理,但排查方式不同,混在一起看容易漏。

混合内容常藏在這些地方

  • 富文本正文:老文章里粘贴的外鏈图片、视频 iframe、以 http 開头的超連結。
  • 模板與公共组件:頁头頁脚、侧栏、彈窗里硬编碼的资源地址。
  • CSS 文件:background-image、@import、字体文件路径,寫在样式里比寫在 HTML 里更难發現。
  • 第三方脚本:統計、客服、广告、地图,有的預設给 http 地址,需要確認對方是否提供 https 版本。
  • 接口與表單:ajax 請求地址、表單 action、回調地址寫成 http,會被拦截或给出警告。
  • CDN 與图床:接入时用的是 http 域名,或者證书只覆盖了主域,没覆盖静態资源域。

一次可以照着做的自查流程

  1. 打開几個有代表性的頁面:首頁、栏目頁、詳情頁、含表單的頁面,逐個看浏览器控制台和 Network 面板,筛出被拦截或标记為不安全的請求。
  2. 在頁面源碼里搜尋 http:// 這個片段,注意区分正文外鏈和站内资源,站内资源必须改成 https。
  3. 單獨下载 CSS 文件,搜尋 http:// 和 url(,样式里的资源地址常常被漏掉。
  4. 用命令行或爬虫工具抓一遍全站,把仍返回 200 的 http 地址列出来,逐個决定是 301 到 https,還是直接下线。
  5. 检查證书:覆盖哪些域名、是否包含 www 和静態资源域名、到期時間、有没有自動續期。
  6. 確認 Sitemap、canonical、内鏈里寫的都是最终要用的那個 https 版本,不要一半 http 一半 https。

修复时的几個注意点

  • 资源地址建议直接寫 https,不要用协议相對寫法。协议相對在本地打開或某些环境下會解析失敗,排查起来更绕。
  • 301 跳轉尽量一步到位,避免 http 到非 www 再到 www 再到 https 這種多級鏈條,每多一跳就多一点流失和不确定性。
  • HSTS 有用,但要想清楚再加。一旦下發,浏览器在有效期内會强制走 https,如果某個子域還没准备好證书,會被直接挡在门外。
  • 批量替換前先备份,替換後抽查正文、模板、样式三類文件,確認没有把正常的外鏈文字也改掉。
  • 改動完成後,用之前那份問题清單再跑一遍,確認數量归零,而不是“看起来没問题了”。

和抓取、收錄有關的一点

http 與 https 都能訪問同一份内容时,相当于给搜尋引擎两個入口,權重和信号會被分散。把跳轉、canonical、Sitemap 三處统一到同一個地址,是最省事的做法。這不能保證收錄速度,但至少不會让地址本身成為障碍。

浏览器给出的安全提示,往往不是技術细节,而是訪客對站点信任的第一道判断。

把它變成例行检查

證书到期、換 CDN、編輯在正文里粘贴新图,都可能重新引入 http 资源。與其等到訪客反馈,不如把控制台检查和證书到期提醒放進每月例行的运维清單里,几分钟就能過一遍。