# Shopify SSL 证书：域名解析、CAA 与 SSL pending 排查

> Shopify 独立站的 SSL 证书免费自动签发：阿里云、DNSPod 上的域名怎么解析，CAA 要放行哪三家 CA，SSL pending 和 SSL unavailable 怎么排查。

Source: https://ssl.sh/zh/guides/shopify-ssl-certificate/
Last updated: 2026-11-10

Shopify 店铺绑定的每个域名都会自动获得免费的 TLS（SSL）证书，并由 Shopify 自动续期，商家既不用买证书，也没法上传自己的证书。域名如果是在阿里云、腾讯云、GoDaddy 等其他地方注册的，只要 A、AAAA、CNAME 三条记录指向 Shopify，最长 48 小时内证书就会出来。超过 48 小时后台还显示 “SSL pending” 或 “SSL unavailable”，几乎都是解析记录、CAA 记录或 DNSSEC 的问题。

内容以 Shopify 官方帮助中心为准（截至 2026 年 11 月）。状态名和报错按官方英文原文列出，中文后台显示对应译文。

## Shopify 的证书是怎么来的

证书完全由 Shopify 负责，商家只管域名解析。官方帮助中心说明，店铺自带的 `.myshopify.com` 地址、在 Shopify 购买或转入的域名、从第三方连接过来的域名，都会自动签发证书，而且所有添加到 Shopify 的域名都免费。做跨境的卖家常常一个店铺挂好几个域名，比如主域名 `example.com`、`www.example.com`，再加一个面向某个市场的域名，每个域名指向 Shopify 之后都会各自拿到证书。

Shopify 没有说某张证书具体由哪家 CA 签发。它在 CAA 说明里列了三家：[Let's Encrypt](https://ssl.sh/zh/cas/lets-encrypt/)、[Google Trust Services](https://ssl.sh/zh/cas/google-trust-services/)（标识是 `pki.goog`）和 [SSL.com](https://ssl.sh/zh/cas/ssl-com/)。所以你检查证书时看到的签发者可能是三家中的任意一家，续期后还可能换成另一家，这也是 CAA 必须三家都放行的原因。域名连接成功、证书就绪后，域名页面会显示 **Connected**。

## 把域名解析到 Shopify

先在后台连接域名，再到域名解析商那里添加记录。路径是 **Settings（设置）→ Domains（域名）→ Connect existing domain（连接现有域名）**。官方说 Cloudflare、GoDaddy、IONOS 的域名可以一键自动连接；阿里云（万网）、腾讯云 DNSPod、Namecheap 等其他解析商需要手动添加下面三条记录：

| 记录类型 | 主机记录 | 记录值 |
|---|---|---|
| A | `@` | `23.227.38.65` |
| AAAA | `@` | `2620:0127:f00f:5::` |
| CNAME | `www` | `shops.myshopify.com` |

在阿里云云解析 DNS 或 DNSPod 里添加时，“主机记录”填 `@` 或 `www`，“解析线路”保持默认即可。根域名上原有的其他 A 记录、AAAA 记录都要删掉，保证各只剩一条；也不要留指向 Shopify 的泛解析（`*`）记录。有的面板不接受 IPv6 的缩写形式，官方给出的完整写法是 `2620:0127:f00f:0005:0000:0000:0000:0000`。第三方域名是靠解析记录接入的，不需要把 DNS 服务器改成 Shopify 的，继续用注册商默认的 DNS 服务器或你现在的解析商就行。

域名托管在 Cloudflare 的，指向 Shopify 的记录必须设为“仅 DNS”（灰色云朵）。Shopify 的说明原文是 “Cloudflare proxy setups, including Orange-to-Orange, aren't supported”，开了代理 Shopify 就看不到真实的指向，证书也签不下来。

Shopify 的服务器不在中国大陆，接入自有域名不需要做 ICP 备案。

## 设了 CAA 记录：三家 CA 都要放行

Shopify 本身不需要 [CAA 记录](https://ssl.sh/zh/glossary/caa/)，但只要域名上有 CAA，就必须把 Shopify 用到的三家都写进去。官方原话是 “You don't need CAA records for your store.” 如果你因为别的业务（比如公司邮箱、其他子站）加过 CAA，或者以前在 DNSPod 里只放行了某一家，就补齐下面三条：

```text
example.com.  3600  IN  CAA  0 issue "letsencrypt.org"
example.com.  3600  IN  CAA  0 issue "pki.goog; cansignhttpexchanges=yes"
example.com.  3600  IN  CAA  0 issue "ssl.com"
```

官方还提醒了两种会挡住签发的写法：值只有一个分号的 CAA 记录等于禁止所有 CA 签发；带 `accounturi`、`validationmethods` 这类参数的记录，即使 CA 名称写对了，也可能挡住 Shopify。可以用 [CAA 记录检查](https://ssl.sh/zh/tools/caa-checker/) 查看实际生效的记录，原理见 [CAA 记录阻止签发](https://ssl.sh/zh/errors/caa-record-prevents-issuance/)。

## 一直显示 SSL pending 或 SSL unavailable 怎么排查

先等满 48 小时，再按解析记录、CAA、DNSSEC 的顺序查。官方帮助中心在 **Settings → Domains** 里用到这几个状态：

- **“SSL pending”**（也写作 “TLS pending”）：在等 DNS 生效和证书签发，最长 48 小时。
- **“SSL unavailable”**：Shopify 无法为这个域名签发证书。
- **“Your connection is unsecure”**：没有有效证书时，买家在店铺前台看到的提示。

Shopify 能判断出原因时，会直接给出提示，官方列出的原文是：

- “Your domain doesn't permit Google, Let's Encrypt and SSL.com to provision SSL certificates.”：按上一节补齐三条 CAA 记录。
- “Your domain's CAA record blocks SSL certificate provisioning.”：删掉只有分号或限制过严的 CAA 记录，或者补全。
- “A DNSSEC misconfiguration is blocking access to your DNS records.”：到域名注册商（比如阿里云域名控制台）关闭 DNSSEC，生效最长要 48 小时。
- “Your domain has an unsupported DNSSEC record.”：针对开着 DNSSEC 转入 Shopify 的域名，需要联系 Shopify 客服处理。

没有提示的话，就按官方的检查顺序来：确认 A 记录是 `23.227.38.65`，核对 AAAA 和 CNAME，检查 CAA，关闭 DNSSEC，过了 48 小时仍然 pending 就联系 Shopify 客服。用 dig 查看公网实际的解析结果：

```bash
dig +short A example.com
dig +short AAAA example.com
dig +short CNAME www.example.com
dig +short CAA example.com
```

如果大部分买家都能看到小锁，只有个别人反映“不安全”，官方给的方向是客户端太旧：Android 7.0 及以下的手机、2010 年以前的浏览器。

## 强制 HTTPS：不用设置

Shopify 没有“强制 HTTPS”开关，因为它默认就会把访问者从 HTTP 跳转到加密的店铺页面。[HSTS](https://ssl.sh/zh/glossary/hsts/) 也由 Shopify 处理：官方说域名连接在店铺期间 HSTS 始终开启，域名移除后这条策略在浏览器里还会保留 90 天。将来如果把域名迁到别的建站平台，新平台必须一开始就有可用的 HTTPS。也不要在 Shopify 前面的解析商或代理上再加一层跳转规则，只会多一次跳转甚至造成循环。

## 处理混合内容

页面上只要有一个资源不是通过 HTTPS 加载，整页就会被当成不安全。官方原话是 “Any page in your Shopify online store that includes an asset that isn't delivered over HTTPS is considered to be insecure.” 常见来源有：主题代码和自定义 Liquid 区块里写死的 `http://` 地址、页面正文里贴的图片、第三方应用插入的代码，以及放在国内图床或其他服务器上的字体和图片。官方建议把店铺用到的素材都上传到 Shopify，这样自动走 HTTPS；必须外链的资源，要换成能正常打开的 `https://` 地址。

用 [混合内容扫描](https://ssl.sh/zh/tools/mixed-content-scanner/) 把首页、商品页和购物车页各扫一遍，按结果逐个替换 `http://` 链接；浏览器对不同资源是拦截还是只警告，见 [混合内容警告](https://ssl.sh/zh/errors/mixed-content-warning/)。改主题或装新应用之后都要重新扫一次，结账页尤其要查。

## 能不能上传自己买的证书

不能。官方原文是 “You can't use third-party SSL certificates with your Shopify store.” 帮助中心没有给任何套餐开例外，所以在别处买的 OV、EV 证书都用不到店铺上。如果同一个域名下还有不在 Shopify 上的系统（比如放在云服务器上的 `api.example.com`），证书装在那台服务器上即可，同时 CAA 记录要同时放行那家 CA 和 Shopify 的三家。

## 验证

配置正确时，签发者是 Shopify 的三家 CA 之一，域名匹配，证书链完整，到期日在未来，HTTP 跳转到 HTTPS。后台显示域名已连接后，从外部检查主域名和 www：

```bash
curl ssl.sh/example.com
curl ssl.sh/www.example.com
```

也可以用网页版 [SSL 证书检查](https://ssl.sh/zh/tools/ssl-checker/)。再确认 HTTP 会跳到 HTTPS：

```bash
curl -sI http://example.com | grep -iE '^(HTTP|location)'
```

## 续期与证书有效期变化

只要域名一直指向 Shopify、CAA 一直放行那三家，续期完全自动。整个行业的证书有效期在缩短：2026 年 3 月 15 日起公开 TLS 证书最长 200 天，2027 年 3 月 15 日起 100 天，2029 年 3 月 15 日起 47 天（见 [证书有效期时间线](https://ssl.sh/zh/timeline/certificate-validity/)）。续期越频繁，解析被改错、有人新加了 CAA 记录这类问题就暴露得越快。改过 DNS 之后回后台检查域名状态，也可以把域名加入 [ssl.sh 监控](https://ssl.sh/zh/monitor/)（开发中），从外部盯着证书到期时间。
