站点运营

站点运营:HTTPS 证书与混合内容自查,别等浏览器报警才发现

HTTPS 在多数站点已是标配,但证书到期、证书链不完整、页面里混着 HTTP 资源,这些问题平时不显眼,一旦触发就会让访客看到警告、让抓取中断。这篇文章按自查顺序,把证书有效期、证书链、SAN 覆盖、混合内容、HSTS 与续期机制逐项过一遍,方便在站点运营中定期核对。

站点运营

站点运营:HTTPS 证书与混合内容自查,别等浏览器报警才发现

HTTPS 在多数站点已经是标配,配置完成之后,很少有人会再回头检查。可证书有有效期,页面里的资源也可能在改版时被换回 HTTP。这两类问题平时看不出来,一旦触发,访客会先看到浏览器的警告页,抓取也可能在中途断掉。把证书和混合内容纳入日常自查,比事后救火省事得多。

证书有效期:别等最后一天

免费证书的有效期通常为 90 天,商业证书多为一年。有效期本身不是问题,问题在于续期动作是否真的执行了。如果用了自动续期,要确认任务有没有按时跑、跑完有没有更新到实际生效的证书文件,而不是只在面板上显示成功。

建议在到期前 30 天就完成续期,并留出验证时间。续期后立即用浏览器访问一次,确认证书签发时间已经变化,避免“续了但没生效”这种最常见的情况。

覆盖范围:域名一个都别漏

证书的 SAN 字段决定它能覆盖哪些域名。常见的疏漏有:

  • 只给主域名配了证书,www 子域没有覆盖,访问时提示不安全;
  • 移动站、静态资源域名、旧域名单独解析,却共用一张覆盖不全的证书;
  • 通配符证书只覆盖一级子域名,二级子域名需要单独处理。

把站点实际在用的域名列出来逐个访问确认,比只看证书面板更可靠。

证书链:中间证书别只装一半

有些服务器只部署了域名证书,没有附带中间证书。桌面浏览器可能自己补全,但部分客户端和抓取工具会直接判定为不受信任。自查方式是检查服务器返回的证书链是否完整,或者用命令行工具查看握手过程中返回了几张证书。多数情况下,把中间证书和域名证书按顺序合并到同一个文件即可。

混合内容:HTTPS 页面里的 HTTP 资源

页面本身是 HTTPS,但里面引用了 HTTP 的图片、脚本、样式、字体或 iframe,浏览器会拦截或给出不安全提示。这类问题往往来自三个地方:历史文章里粘贴的外链图片、第三方统计或广告代码、改版时遗留的旧资源路径。

处理方式分两步:先扫描,再替换。扫描可以借助浏览器控制台的提示逐页看,也可以用抓取工具跑一遍全站;替换时优先把站内资源改成本站 HTTPS 地址,外部资源无法控制的,就考虑换成支持 HTTPS 的来源或直接去掉。

HSTS 与跳转:配之前想清楚

HSTS 能让浏览器记住只走 HTTPS,减少一次跳转。但它有个特点:一旦下发,在有效期内浏览器不会再去尝试 HTTP,回退比较麻烦。如果站点仍有部分子域没上 HTTPS,开启时不要带上 includeSubDomains。

同时检查 HTTP 到 HTTPS、裸域到 www 的跳转。理想情况是一次跳转到位,而不是连跳两三次。跳转层级过多,既拖慢首屏,也让抓取多走弯路。

一份可以照着做的自查清单

  1. 确认证书到期时间,续期任务是否真实生效;
  2. 列出所有在用域名,逐个访问确认没有安全警告;
  3. 检查证书链是否完整,中间证书是否已部署;
  4. 跑一遍全站,找出 HTTPS 页面里的 HTTP 资源;
  5. 核对 HTTP 到 HTTPS、裸域到主域的跳转层级;
  6. 确认 HSTS 设置与子域覆盖情况相匹配;
  7. 打开证书到期提醒,留足提前量。

把检查变成固定动作

证书和混合内容的问题不会天天出现,但一旦出现,表现往往很直接:访客不敢继续,抓取中断,页面在结果里的展示也可能受影响。与其等浏览器报警,不如把它排进季度自查。改动服务器配置、更换 CDN、上线新版模板之后,顺手再看一眼证书和资源协议,成本很低,收益很实在。