旧域名只做 301 跳转,运维觉得不再使用就没续证书,证书过期后蜘蛛访问旧地址直接握手失败,301 根本发不出去,权重合并中断。

排查方向其实有限,先把可能性排一排。证书过期后 HTTPS 请求在 TLS 层就失败,读不到 301 响应;旧域名仍有大量外链,蜘蛛持续尝试访问;HSTS 缓存让浏览器和蜘蛛都无法回退到 http;新证书只签了新域名,没有覆盖旧域名。

先确认旧域名证书状态

curl -sI https://old.example.com/ | findstr /i "HTTP"

然后用 openssl 看证书有效期

openssl s_client -connect old.example.com:443 -servername old.example.com </dev/null 2>&1 | findstr notAfter

给旧域名续签并保留 301

certbot certonly -d old.example.com

复验跳转是否恢复

curl -sI https://old.example.com/post-1024/ | findstr /i "HTTP location"

这台环境是别人交接的,不少默认值被动过,只能一项项核。

同事提醒我看一下最近一次发布,时间点确实对得上。

改完先别撤,确认这几项。续签后旧域名的 301 恢复正常,三周内旧地址的抓取逐步转成对新地址的访问。

做 301 的域名也要维护证书,跳转发生在握手之后,证书一过期,整条链路就断在最前面。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189