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 调整这类时间点之后,顺手复查一遍,多数问题能提前发现。