# WordPress.com HTTPS：证书 pending、CAA 与 DNS 排查

> WordPress.com 的免费 Let's Encrypt 证书一直 pending 怎么办：域名怎么接入，CAA 放行 letsencrypt.org，Domain security 里三类报错和 Provision certificate 按钮。

Source: https://ssl.sh/zh/guides/wordpress-com-https/
Last updated: 2026-11-10

托管在 WordPress.com 上的网站都会自动获得免费的 Let's Encrypt 证书，由 WordPress.com 申请和续期，HTTPS 无法关闭。新接入的域名通常几分钟就有证书，最长不超过 24 小时。如果 Domain security 里一直显示 “SSL certificate pending”，说明域名解析没有正确指向 WordPress.com，或者 CAA、DNSSEC 记录挡住了签发。

内容以 WordPress.com 官方支持文档为准（截至 2026 年 11 月），状态名和报错按官方英文原文列出。只适用于托管在 WordPress.com 的网站，不适用于自建的 WordPress。

## WordPress.com 的证书是怎么来的

证书是自动签发的，而且只来自一家 CA。官方原文是 “SSL certificates on WordPress.com come from the Let's Encrypt Certificate Authority.” 覆盖托管在 WordPress.com 上的所有域名和子域名，并且 “The certificate usually takes a few minutes to provision, but it can take up to 24 hours.” 接入自有域名时，连接状态变成 Active 后，WordPress.com 会自动签发免费证书。服务器支持 TLS 1.2 和 TLS 1.3。

不用买任何东西，官方把 SSL 描述为不需要自己购买或设置的功能。只要域名一直指向 WordPress.com，续期也是自动的。

不少做外贸、写英文博客的用户会在 WordPress.com 上建站，域名却在阿里云、腾讯云或 Namecheap 买的，这种情况就要先把下面的解析配好。

## 把域名解析到 WordPress.com

除非域名上已经跑着其他服务，否则推荐直接用 WordPress.com 的 DNS 服务器。官方给了两种方式：

- **改 DNS 服务器（域名上没有其他服务时推荐）：** 在注册商那里把 DNS 服务器改成 `ns1.wordpress.com`、`ns2.wordpress.com`、`ns3.wordpress.com`。官方说 “Your name servers should be set to only the three values listed above”，如果保留了一个旧的 DNS 服务器，就会出现下文的 DNS 服务器混用错误。在阿里云域名控制台里，这一步叫“修改 DNS 服务器”。
- **加解析记录（已经在用企业邮箱等服务时）：** 保留原解析商，按连接页面上的值添加：根域名两条 A 记录，分别用 “The first IP address shown on your connection screen” 和 “The second IP address shown on your connection screen”，再给 `www` 加一条指向你域名的 CNAME。

A 记录的 IP 要从你自己的连接页面上复制，不要照抄论坛帖子里的地址，官方文档特意没有写死这两个值。DNS 改动最长需要 72 小时生效。

## 设了 CAA 记录：放行 Let's Encrypt

域名有 [CAA 记录](https://ssl.sh/zh/glossary/caa/) 时，必须允许 Let's Encrypt 签发。WordPress.com 的报错里写了 CA 名称，但没有写记录值；Let's Encrypt 的 CAA 标识是 `letsencrypt.org`：

```text
example.com.  3600  IN  CAA  0 issue "letsencrypt.org"
```

用 WordPress.com DNS 服务器的域名，在域名的 DNS 记录里添加（CAA 是 WordPress.com 支持添加的记录类型之一，官方的解释是它 “Controls which companies can create security certificates for your domain”）；DNS 在别处的，就在那边添加，比如 DNSPod 的记录类型里选 CAA。域名本来没有 CAA 记录的，不需要专门加。加完用 [CAA 记录检查](https://ssl.sh/zh/tools/caa-checker/) 确认，原理见 [CAA 记录阻止签发](https://ssl.sh/zh/errors/caa-record-prevents-issuance/)。

## 一直显示 SSL certificate pending 怎么排查

证书一直 pending，说明域名解析没有正确指向 WordPress.com，或者 CAA、DNSSEC 记录挡住了签发。打开 **Domains**，点进域名，看 Domain security 一栏，状态会是 “SSL certificate active” 或 “SSL certificate pending”。WordPress.com 能判断出原因时，会显示下面的报错，原文如下：

- **CAA 记录错误：** “This domain has CAA DNS records that do not allow Let's Encrypt to issue a certificate. Please update or remove the CAA DNS records.”
- **DNS 服务器混用错误：** “This domain has a mixture of both WordPress.com and external name servers. Please update the NS records.”
- **DNSSEC 验证错误：** “This domain has DNSSEC validation errors. You may need to remove or update the DS Record data at your registrar.”

修好原因后，在 Domain security 里点 **“Provision certificate”** 按钮重新申请证书。如果看不到这个按钮，说明域名还没配置正确。官方按域名类型给出的处理方法：

- **在 WordPress.com 注册或转入的域名：** 打开 “Use WordPress.com name servers”，在 DNS 记录的三点菜单里恢复默认的 A 和 CNAME 记录，等几个小时后再申请。
- **从外部连接的域名：** 先完成连接；如果用的是 WordPress.com 的 DNS 服务器，要到注册商那里关闭 DNSSEC（删除 DS 记录）。

超过 24 小时网站还显示“不安全”，就修好 DNS 问题后手动申请。在此之前访客可能看到 `NET::ERR_CERT_COMMON_NAME_INVALID`，因为当前证书还不包含新域名，见 [ERR_CERT_COMMON_NAME_INVALID](https://ssl.sh/zh/errors/net-err-cert-common-name-invalid/)。可以用下面的命令看公网解析：

```bash
dig +short NS example.com
dig +short A example.com
dig +short CAA example.com
dig +short DS example.com
```

## 强制 HTTPS：默认就开着，还带 HSTS

WordPress.com 默认强制 HTTPS，而且关不掉。官方原文是 “WordPress.com does not support disabling SSL. All insecure HTTP requests redirect to the secure HTTPS version.” 同时 “WordPress.com also sends a Strict-Transport-Security (HSTS) header with all HTTPS responses”，访问过一次的浏览器之后不会再用 HTTP 访问。将来要把域名迁走时要记住这一点，[HSTS](https://ssl.sh/zh/glossary/hsts/) 的含义见术语页。

## 处理混合内容

WordPress.com 上的混合内容，通常来自用 `http://` 加载资源的“嵌入”区块或“自定义 HTML”区块。官方的处理步骤：

1. 打开有警告的页面，打开浏览器控制台。
2. 刷新页面，找提到 mixed content 或 insecure content 的警告或错误。
3. 在编辑器里打开这篇文章或页面，找到包含不安全地址的区块。
4. 把地址里的 `http://` 改成 `https://`，点 **更新**（Update）。
5. 清除浏览器缓存，刷新页面，看地址栏有没有小锁。

如果资源本身没有 HTTPS 版本，就把文件上传到你的 WordPress.com 网站，改用这份副本。用 [混合内容扫描](https://ssl.sh/zh/tools/mixed-content-scanner/) 可以一次列出整页的不安全地址，浏览器会拦截哪些资源见 [混合内容警告](https://ssl.sh/zh/errors/mixed-content-warning/)。

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

没有上传入口。WordPress.com 的文档只介绍自己签发的 Let's Encrypt 证书，并把 SSL 作为包含在内、无需购买或安装的功能。如果业务确实需要某家 CA 的证书，比如客户要求 OV 证书，网站就得放在支持自定义证书的主机上。

## 验证

配置正确时，签发者是 Let's Encrypt，域名匹配，证书链完整。Domain security 显示证书已生效后，从外部检查主域名和 www：

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

也可以用网页版 [SSL 证书检查](https://ssl.sh/zh/tools/ssl-checker/)。

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

只要域名一直指向 WordPress.com，续期就是自动的。Let's Encrypt 从 2025 年 6 月 4 日起不再发送到期提醒邮件，默认证书 2027 年 2 月 10 日从 90 天改为 64 天，2028 年 2 月 16 日改为 45 天；公开证书自 2026 年 3 月 15 日起最长 200 天。改 DNS 时一旦弄坏续期，不会有人发邮件提醒你，可以把域名加入 [ssl.sh 监控](https://ssl.sh/zh/monitor/)（开发中），从外部盯着。
