站点换到 HTTPS 之后,很多人就把它当成一件已经完成的事。实际上证书会到期,外链资源会失效,页面里混进一个 http 地址就可能触发浏览器的安全提示。这些问题平时不显眼,一旦集中出现,影响的往往是访客的第一印象和蜘蛛的抓取路径。
为什么证书问题容易被忽略
证书通常按年续签,中间有大段时间不出问题,值班的人也就不会主动去看。等到提醒邮件被归进垃圾箱,或者自动续签脚本因为验证方式改动而失败,问题才会暴露。表现可能是整站打不开、部分浏览器报错,也可能只是某个子域名不受信任。
证书层面要关注的几项
- 有效期与续签:确认到期日,确认自动续签任务确实跑过,而不是只配置了没验证。
- 域名覆盖:主域名、www 以及各子域名是否都在证书的覆盖范围内。
- 证书链完整:中间证书缺失时,部分客户端会直接判为不可信。
- 服务器时间:系统时间偏差过大,会让证书校验失败。
混合内容的常见来源
混合内容指 HTTPS 页面里加载了 http 资源。浏览器会拦截或降级处理,页面就可能出现样式错乱、图片不显示、脚本失效。
- 早期文章里粘贴的外链图片,地址仍是 http。
- 模板或第三方组件里的 CDN 链接没有同步更新。
- 字体文件、图标库、统计脚本走的是旧协议。
- iframe 嵌入的视频或地图地址。
- 表单 action 指向 http 地址。
排查时可以先打开浏览器开发者工具的控制台和网络面板,筛选 http 开头的请求;也可以批量抓取页面 HTML,用脚本筛出其中的 http 链接。
容易漏掉的几处配置
- 站点地图里记录的地址是 http 版本。
- canonical 标签、og:url、结构化数据里的链接协议不统一。
- 站内搜索或筛选功能拼接出来的链接仍是旧协议。
- 邮件模板、RSS 输出里的链接。
这些位置不一定影响页面渲染,但会让同一份内容出现两个协议版本,给规范链接的判断添麻烦。
跳转与一致性处理
http 到 https 应当使用 301 跳转,并在服务器层面统一处理,而不是靠页面里的 JS 跳转。同时要确定 www 与非 www 谁是主版本,另一侧做 301。多条跳转串在一起会消耗抓取预算,能一次跳到位就不要分两步。
HSTS 可以强制浏览器后续只用 HTTPS 访问,但开启前要确认所有子域名都能正常提供 HTTPS,否则会把自己挡在门外。
一份简单的自查顺序
- 查看证书到期时间和域名覆盖,确认自动续签任务有执行记录。
- 用不同浏览器打开首页和几个典型内页,看是否有安全提示。
- 打开开发者工具,筛出仍在加载的 http 资源并逐条替换。
- 检查站点地图、canonical、结构化数据里的链接协议。
- 验证 http 与 www 的跳转是否为一次 301。
- 把检查项写进例行清单,在证书到期前留出足够时间。
证书和协议问题往往不是技术难题,而是缺少一次定期确认。把它纳入固定检查项,比出问题后再排查省事得多。