HaoWordTool

域名 · Case 01

Shopify 绑定自定义域名:后台没有确认按钮,怎么从外部证明它生效了

2026-10-23 实测 · 对象 shop.haowordtool.com · 所有数值为当时命令输出

新店绑域名最常见的困局不是绑不上,而是绑完之后没有明确的成功提示。后台只显示「已连接」,页面照样能打开——但打开的是店铺还是错误页,从后台看不出来。这篇记录的是从外部验证的全过程,包括一个容易被误判为主因的 429。

现象:两个互相矛盾的信号

第一次探测的结果是分裂的:HEAD / 返回 302 跳到 /password,看起来是正常店铺;而 GET / 连续三次返回 429 Too Many Requests。如果只看后者,结论会是「域名没配好」或「被墙了」,然后开始怀疑 DNS、怀疑证书、怀疑 CDN 设置。这三个方向都错。

测量:三条互不依赖的信号

信号一 — 证书的 SAN 里有没有这个域名

这是最能说明问题的一条。托管平台在域名真正挂到店铺之后才会去申请证书;证书申请不下来,就不会有这张证书。

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
subjectAltNameDNS:shop.haowordtool.com(只有这一条,精确匹配)
协商协议TLS 1.3
covers_hosttrue

一张只覆盖该域名的 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
类型值
CNAMEshops.myshopify.com.
A23.227.38.74
AAAA2620: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 /password200,etag 内含 PasswordController,shopify-complexity-score-v2: 188

店铺仍在密码保护状态,所以根路径全量跳密码页——这是新店默认行为,不是故障。etag 里出现控制器名称、复杂度评分是个真实渲染值,说明这不是一张静态占位页,而是店铺前台在真实渲染。

那个 429 是什么

响应体是 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,以及批准连接器授权——这两个动作都必须在店铺后台的已登录会话里完成,外部无法代办。

可复用的检查清单

  1. 证书 SAN 是否精确包含该域名,签发时间是否晚于绑定时点。
  2. CNAME 是否指向平台入口,两个解析器结果是否一致。
  3. A / AAAA 是否都有值(只有 A 没有 AAAA 时,部分双栈网络会走 IPv6 失败)。
  4. HEAD / 的状态码与跳转目标是否符合平台默认行为。
  5. 取一个确定存在的深层路径(如密码页)看是否 200,排除「首页能开但子页 404」。
  6. 遇到 429 先看响应体有没有 ASN / retry-after,有则换网络复测,不要改 DNS。
  7. 验证完成后再去后台做需要登录的动作,顺序反了会以为是绑定没生效。

整个排查不到十分钟,其中一半时间花在把 429 从「主因」降级为「干扰项」上。这类判断没有捷径,只能靠多信号交叉——单一信号在这次会给出完全相反的结论。