HTTPS 現在基本是網站的标配,浏览器、搜尋引擎、各類接口都在推動這件事。不過“装過證书”和“配置一直没出問题”是两件事。證书會過期,證书鏈可能不完整,頁面里可能還残留着 http 资源,跳轉可能绕了好几圈。這些细节平时不顯眼,出問题的时候往往表現為用戶看到安全警告、蜘蛛抓取異常。
先確認證书本身的狀態
最基础的一步是確認證书没過期、域名匹配、鏈完整。三件事缺一件,客戶端就可能直接拒绝连接。
- 有效期:免費證书通常 90 天,商业證书一年到两年。無论哪種,都建议提前 15 到 30 天做提醒,別等到最後一天才發現自動續期失敗。
- 域名覆盖:確認證书里的域名列表覆盖了 www 和裸域,以及所有實际在用的子域。用通配符證书时注意它通常只覆盖一級子域。
- 證书鏈:服務器應当把中間證书一起下發。鏈不完整时,部分客戶端和爬虫可能校驗失敗。
跳轉鏈別绕圈
http 跳 https、裸域跳 www、末尾斜杠,這些跳轉本身都没問题,問题是叠加。一次訪問跳三次,用戶要多等,蜘蛛也多花抓取预算。建议固定一個規范版本,其余地址一次 301 到位,中間不要串行。
检查混合内容
頁面通過 HTTPS 打開了,但里面還引用着 http 的图片、脚本、样式或 iframe,浏览器會标记為不安全。脚本類资源通常會被直接拦截,图片可能被降級或屏蔽。
- 在浏览器控制台看是否有 mixed content 提示,也可以看 Network 面板里的协议列。
- 常见来源:老編輯器粘贴的外鏈图片、第三方統計代碼、广告位、測試遗留的 iframe。
- 處理方式:換成 https 地址、改為站内自托管,或者直接去掉。
HSTS 要不要開
HSTS 告诉浏览器在指定時間内强制走 HTTPS,可以减少一次跳轉。但它有副作用:一旦下發,在有效期内即使證书出問题,浏览器也會拒绝訪問;加了 includeSubDomains 還會影响所有子域。建议先把證书續期流程跑顺,再考虑開啟,並且第一次把 max-age 设短一些。
CDN 與多环境
用了 CDN 的话,證书可能同时存在于源站和邊缘节点,續期後要確認两邊都更新了。另外測試环境、灰度环境如果占用了正式域名或子域,注意別把測試證书暴露出来。
一份简單的自查清單
- 用在线工具或命令行检查證书有效期、域名覆盖與鏈完整性。
- 確認 http 版本能一次 301 到規范的 https 地址。
- 抽查首頁、栏目頁、詳情頁有無混合内容。
- 检查站内連結、站点地图、订阅源里的地址是否都寫成了 https。
- 確認自動續期任務在正常執行,並且有失敗告警。
- 更換證书後清理 CDN 缓存,確認邊缘节点已经更新。
HTTPS 是基础安全配置,不是排名手段。把它做稳,主要是為了让用戶能正常打開、让蜘蛛能正常抓,別在這一步丢分。
這些检查不需要天天做,但可以放進季度维護清單。證书到期、跳轉規則變更、CDN 調整這類時間点之後,顺手复查一遍,多數問题能提前發現。