域名 · Case 01
新店绑域名最常见的困局不是绑不上,而是绑完之后没有明确的成功提示。后台只显示「已连接」,页面照样能打开——但打开的是店铺还是错误页,从后台看不出来。这篇记录的是从外部验证的全过程,包括一个容易被误判为主因的 429。
第一次探测的结果是分裂的:HEAD / 返回 302 跳到 /password,看起来是正常店铺;而 GET / 连续三次返回 429 Too Many Requests。如果只看后者,结论会是「域名没配好」或「被墙了」,然后开始怀疑 DNS、怀疑证书、怀疑 CDN 设置。这三个方向都错。
这是最能说明问题的一条。托管平台在域名真正挂到店铺之后才会去申请证书;证书申请不下来,就不会有这张证书。
openssl s_client -connect shop.haowordtool.com:443 -servername shop.haowordtool.com </dev/null \
| openssl x509 -noout -issuer -dates -ext subjectAltName
拿到的结果:
| 字段 | 实际值 |
|---|---|
| 签发者 | Let's Encrypt |
| 生效时间 | 2026-10-23 06:16:33 GMT |
| subjectAltName | DNS:shop.haowordtool.com(只有这一条,精确匹配) |
| 协商协议 | TLS 1.3 |
| covers_host | true |
一张只覆盖该域名的 Let's Encrypt 证书,且签发时间在绑定时点之后,说明平台已经把这个域名当成自己的站点在处理。泛域名证书或平台默认证书不构成证据,所以 SAN 要看具体内容,不能只看「有没有证书」。
单解析器会被本地缓存和运营商 DNS 影响,所以至少要两个来源。
dig +short shop.haowordtool.com CNAME
dig +short shop.haowordtool.com A
dig +short shop.haowordtool.com AAAA @1.1.1.1
| 类型 | 值 |
|---|---|
| CNAME | shops.myshopify.com. |
| A | 23.227.38.74 |
| AAAA | 2620:127:f00f:e:: |
两个解析器结果一致。CNAME 指向平台入口而不是某个固定 IP,这一点很关键:如果 CNAME 还停在旧目标,即使 A 记录看起来正常,请求也会打到错误的后端。
curl -sSI https://shop.haowordtool.com/ | head -12
curl -sS https://shop.haowordtool.com/password | grep -oE 'etag|shopify-complexity-score[^,]*'
| 请求 | 结果 |
|---|---|
HEAD / | 302 → /password,pageType: index,theme: 192508985653,powered-by: Shopify |
GET /password | 200,etag 内含 PasswordController,shopify-complexity-score-v2: 188 |
店铺仍在密码保护状态,所以根路径全量跳密码页——这是新店默认行为,不是故障。etag 里出现控制器名称、复杂度评分是个真实渲染值,说明这不是一张静态占位页,而是店铺前台在真实渲染。
响应体是 local_rate_limited,带 retry-after: 60,以及 asn:desc="56045"。ASN 56045 是中国移动的家宽出口。也就是说,限流发生在「住宅 IP 访问 Shopify 边缘」这一层,与域名绑定无关。同一时刻 /password 返回 200、robots.txt 返回 200、HEAD / 返回 302,三条都通。
判断规则:同一目标上「部分请求成功、部分 429」,且 429 响应体带 ASN 与 retry-after,基本可以判定为出口限流,不要动 DNS。真正配错域名的表现是稳定失败:连接超时、证书不匹配、404 统一错误页,而不是间歇性 429。
三条信号同时成立,绑定成立。剩下的两件事卡在登录态上,不是技术问题:把该域名设为 primary domain,以及批准连接器授权——这两个动作都必须在店铺后台的已登录会话里完成,外部无法代办。
HEAD / 的状态码与跳转目标是否符合平台默认行为。整个排查不到十分钟,其中一半时间花在把 429 从「主因」降级为「干扰项」上。这类判断没有捷径,只能靠多信号交叉——单一信号在这次会给出完全相反的结论。