HTTPS 已经不是什么加分项,而是基本配置。但实际运营中,证书过期、域名不匹配、页面里混着 http 资源这些问题仍然频繁出现。它们不会让网站立刻打不开,却可能让访客先看到一屏安全警告,也可能让蜘蛛在抓取时直接报错退出。与其等浏览器提醒,不如把这几项自查放进日常巡检里。
一、证书本身要看三件事
证书问题里,最容易发现的是过期,最容易忽略的是覆盖范围和证书链。
1. 有效期与到期提醒
先确认当前证书的到期时间。免费证书通常 90 天,商业证书一年或两年。不要只靠记忆,最好在服务器或监控里设置到期提醒,提前 15 到 30 天触发。如果用了 CDN 或负载均衡,证书可能不在源站上,要分别检查每一层。
2. 域名覆盖范围
检查证书里的 SAN 字段是否包含了你实际在用的所有域名:带 www 和不带 www、主域名和子域名、移动端独立域名等。如果只签了主域名,访问 www 时就会报错。通配符证书能覆盖一级子域,但通常不覆盖多级,比如 a.b.example.com 可能不在范围内。
3. 证书链是否完整
有些服务器只装了站点证书,忘了装中间证书。桌面浏览器可能自动补全,但部分移动端、旧客户端或蜘蛛的抓取程序不一定能补。用在线工具或命令行检查时,如果提示“证书链不完整”,就把中间证书补上。
二、混合内容:最容易被漏掉的一类
混合内容指的是 https 页面里加载了 http 资源。浏览器对它的处理越来越严格:图片、脚本、样式、字体、iframe 都可能被拦截或降级,地址栏的锁形图标也可能消失。
常见的来源有:
- 早年上传的图片,地址还是 http 开头;
- 引用了外部 CDN 上的旧版 JS 库或字体文件;
- 统计代码、客服组件、视频嵌入代码没有同步改成 https;
- 数据库里存的文章正文包含 http 链接;
- 站点地图或 RSS 里给出的地址仍是 http。
排查时,打开浏览器开发者工具的控制台,刷新页面,看有没有 Mixed Content 警告。也可以直接搜索数据库或模板文件里的 http:// 字符串。注意不要简单全局替换,先确认哪些是外部域名、哪些是自己站内的旧地址,再分别处理。
混合内容不一定阻止蜘蛛抓取,但它会让页面在部分环境下加载失败,访客看到的可能是残缺的排版或空白区块。
三、http 到 https 的跳转入口
如果同一份内容既能用 http 访问,又能用 https 访问,就多了一个重复入口。建议把 http 统一 301 到 https,并且尽量一步到位,不要先跳到 www 再跳 https,或者先跳 https 再跳 www。多重跳转既拖慢访问,也让抓取路径变复杂。
确认好最终使用的规范域名后,把其他组合都指向它。如果条件允许,可以配置 HSTS,让浏览器在一段时间内强制使用 https,减少中间人攻击和重复跳转。但 HSTS 要谨慎开启,确认所有子域都支持 https 之后再上,否则可能把自己挡在门外。
四、对抓取的实际影响
证书错误和混合内容对蜘蛛的影响不太一样。证书过期、域名不匹配、证书链不完整,通常会让抓取请求直接失败,蜘蛛看到的是一个错误页,而不是你的内容。混合内容则更多影响渲染和体验,如果关键脚本被拦截,页面可能显示不全。
另外,如果服务器同时监听 80 和 443,但跳转规则写错,蜘蛛可能反复在 http 和 https 之间来回,浪费抓取频次。定期看服务器日志里 4xx、5xx 和跳转状态码的分布,能发现这类问题。
五、一份可以照着做的自查清单
- 检查证书到期时间,确认提醒机制已经生效。
- 确认证书覆盖了所有实际使用的域名和子域名。
- 用工具检查证书链是否完整。
- 打开开发者工具,看控制台有没有混合内容警告。
- 搜索模板、数据库和配置里的 http 链接,逐条确认。
- 确认 http 到 https 的跳转是一步完成,没有多余跳转。
- 如果启用了 HSTS,确认所有子域都能正常用 https 访问。
- 在服务器日志里观察证书错误和跳转相关的状态码变化。
这些检查不需要一次全做完,可以拆成每周或每月的小项。证书类的故障往往不是突然出现,而是到期前就埋下了提醒。把到期时间、跳转规则和混合内容当成常规巡检的一部分,比等浏览器弹出警告再补救要从容得多。