站点上了 HTTPS 並不代表安全配置就一劳永逸。證书會過期,頁面里的资源可能還在走 HTTP,服務器配置也可能在某個环节掉鏈子。對訪客来说,這些是浏览器地址栏里的警告;對搜尋蜘蛛来说,則可能是一次失敗的抓取,或者只拿到半截頁面。
這一篇不讨论怎么申請證书,而是把注意力放在上线之後容易忽略的几件事上。它們不复杂,但一旦出問题,排查起来往往比想象中費時間。
證书本身:過期、域名不匹配、鏈不完整
打開浏览器開發者工具的安全面板,或者用命令行請求一次頁面头信息,就能看到證书的基本狀態。最常见的三類問题:
- 證书過期:很多站点用免費證书,三個月一續。如果續期脚本失敗又没人發現,到期当天所有 HTTPS 訪問都會报错。
- 域名不匹配:證书只簽了 www 版本,裸域名没有覆盖;或者子域名用了主域名證书,訪問时提示名稱不一致。
- 證书鏈不完整:服務器只發了站点證书,没發中間證书。部分浏览器能自動补全,但一些蜘蛛和工具會直接判定證书無效。
這三類問题里,過期最容易监控,也最不该發生。把到期提醒放在日歷、监控平台或服務器巡检脚本里,比事後救火划算得多。
混合内容:頁面是 HTTPS,资源却在走 HTTP
混合内容指的是 HTTPS 頁面中加载了 HTTP 资源。图片、脚本、样式表、字体、iframe 都可能中招。浏览器通常會拦截主動混合内容,比如脚本和样式,被動内容如图片可能被降級或阻止加载。
结果就是:訪客看到頁面布局错乱甚至空白,蜘蛛拿到的 HTML 虽然狀態碼是 200,但渲染後的内容残缺。如果關键内容依赖這些资源,抓取和索引效果都會打折扣。
混合内容不會让頁面直接 404,却會让頁面“看起来正常”地缺一块。定期在開發者工具 Console 里掃一遍,比凭感觉可靠。
常见出現位置包括:
- 歷史文章里粘贴的外鏈图片、视频嵌入代碼。
- 第三方統計、客服、广告脚本仍使用 http:// 地址。
- CDN 或對象存储回源地址配置成了 HTTP。
- 模板里的字体、图标库引用没有跟着站点一起升級。
處理方式不复杂:把资源地址改成 HTTPS,或者使用相對协议。如果對方站点不支持 HTTPS,就考虑換源或本地化。改完後最好全站掃一遍,而不是只改首頁。
重定向與 HSTS:別让跳轉變成循环
從 HTTP 跳到 HTTPS 是常規操作,但要避免几種情况:HTTP 跳 HTTPS 再跳回 HTTP、带 www 和不带 www 之間来回跳、跳轉鏈太長。蜘蛛每次遇到長跳轉鏈,都會多消耗一点抓取预算。
HSTS 可以让浏览器强制走 HTTPS,减少一次跳轉。不過開啟前要確認全站和所有子域名都已支持 HTTPS,否則可能把某些服務挡在门外。预加载列表更要谨慎,提交後想撤回並不轻松。
一份日常检查清單
- 確認證书到期時間,並設定提前 15 到 30 天的提醒。
- 用不同域名形態訪問:裸域名、www、常用子域名,看證书是否都匹配。
- 在開發者工具 Console 和 Network 面板检查混合内容警告。
- 抽查主要模板,確認脚本、样式、字体、图片引用协议统一。
- 检查 HTTP 到 HTTPS 的跳轉是否一步到位,有没有循环或多余跳轉。
- 如果用了 CDN,確認回源协议和證书配置一致。
- 改版或換服務器後,重新跑一遍上述检查。
這些检查不需要每次全做,但至少在每個季度、證书續期前後、以及服務器或 CDN 配置變更後過一遍。HTTPS 的稳定性是站点运营的底座,底座不稳,後面谈抓取、收錄和内容更新都會事倍功半。