站点运营

站点运营: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 资源。与其等到访客反馈,不如把控制台检查和证书到期提醒放进每月例行的运维清单里,几分钟就能过一遍。