站点运营

站点运营: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. 恢复后抽查几个关键页面,确认浏览器无告警、抓取返回正常。

这类问题修起来不复杂,麻烦的是发现得太晚。把证书有效期和混合内容纳入日常巡检,比出事之后临时救火省事得多。