最近在给一个 WordPress 站点配置 Cloudflare 时,网站突然打不开了,页面上只显示了一行醒目的错误:
Invalid SSL certificate
Error code 526
第一次遇到这个错误的人,很容易以为是 WordPress 出了问题,甚至怀疑是插件、主题或者服务器环境配置错了。
实际上,这个错误和 WordPress 基本没什么关系。
问题出在 Cloudflare 和你的服务器之间的 HTTPS 连接。
事情是怎么发生的
当时我的网站架构比较简单:
Cloudflare
↓
Nginx
↓
Docker WordPress
Cloudflare 开启代理之后,访问域名直接报 526。
服务器本身是能访问的:
curl http://127.0.0.1:8082
WordPress 正常返回页面。
Nginx 也启动正常。
但是只要经过 Cloudflare,页面就直接报错。
刚开始我以为是 Nginx 配置写错了,折腾了半天才发现根本不是这么回事。
Error 526 到底是什么意思
简单来说:
Cloudflare 访问你的服务器时,发现服务器上的 SSL 证书不合法。
于是直接拒绝建立 HTTPS 连接。
整个过程大概是这样:
用户
↓
Cloudflare
↓
你的服务器
很多人会忽略一点:
浏览器和 Cloudflare 之间的 HTTPS 正常,并不代表 Cloudflare 和源站之间也正常。
526 其实是在第二段链路出的问题。
最常见的几个原因
这些年折腾过不少站点,526 基本逃不过下面几种情况。
1. 根本没配置 HTTPS
有些人把域名接入 Cloudflare 之后,直接开启了:
Full (strict)
结果服务器根本没有 443。
或者 Nginx 只监听了 80。
Cloudflare 一访问就傻眼了。
这种情况直接报 526。
2. 证书过期了
这个属于最常见的。
尤其是自己手动申请证书,又忘了续期。
服务器自己访问可能没注意,但 Cloudflare 校验时非常严格。
只要过期,直接拒绝连接。
3. 域名和证书不匹配
比如访问:
notavia.cc
结果证书签的是:
test.example.com
或者只有:
www.notavia.cc
没有裸域。
Cloudflare 同样会认为证书无效。
4. Cloudflare Origin Certificate 配置错了
这个我自己踩过坑。
证书申请完了:
cf-origin.pem
cf-origin.key
也放进服务器了。
结果 Nginx 配置写错路径:
ssl_certificate /etc/nginx/ssl/xxx.pem;
reload 后居然没仔细检查。
Cloudflare 一访问就是 526。
后来执行:
nginx -t
才发现配置有问题。
我最后是怎么解决的
我的方案比较简单。
直接使用 Cloudflare 的 Origin Certificate。
第一步
Cloudflare 后台:

SSL/TLS
↓
Origin Server
↓
Create Certificate
创建证书。

会得到两段内容:
Certificate
Private Key
保存到服务器。
例如:
/etc/nginx/ssl/cf-origin.pem
/etc/nginx/ssl/cf-origin.key
第二步
Nginx 配置 HTTPS:
server {
listen 443 ssl;
server_name notavia.cc www.notavia.cc;
ssl_certificate /etc/nginx/ssl/cf-origin.pem;
ssl_certificate_key /etc/nginx/ssl/cf-origin.key;
location / {
proxy_pass http://127.0.0.1:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
}
}
然后检查:
nginx -t
确认没有报错。
重载:
nginx -s reload
第三步
Cloudflare SSL 模式改成:
Full (strict)
这里很多教程让你选 Flexible。
个人并不推荐。
既然都已经有 HTTPS 了,直接 Full (strict) 就行。
安全性更高,也省得后面出现各种奇怪问题。
顺便说说 WordPress 的一个坑
526 解决之后,我又遇到了另一个问题。
访问域名:
https://notavia.cc
结果自动跳到了:
http://ip:8082
看起来像 SSL 没配置好。
其实是在初始化的时候,用的是http://ip+8082,所有每次都调整到这个页面了。
在 设置>常规 页面中,设置中修改一下站点地址就可以了。

我的经验
这些年做过不少网站,不管是 WordPress、Hexo 还是各种 SaaS 项目。
只要看到:
Error 526
我第一反应一定不是去看 WordPress。
而是先检查:
openssl s_client -connect 域名:443
看看证书是不是正常。
然后检查:
nginx -t
确认 Nginx 是否正确加载证书。
最后再看 Cloudflare SSL 模式。
基本上十分钟内就能定位问题。
很多时候并不是系统复杂,而是某个小配置没有对上。
总结
Error 526 本质上只有一句话:
Cloudflare 不信任你服务器上的 SSL 证书。
解决思路也很明确:
- 检查证书是否存在
- 检查证书是否过期
- 检查域名是否匹配
- 检查 Nginx 是否正确加载证书
- 使用 Cloudflare Origin Certificate
- SSL 模式使用 Full (strict)
如果你的 WordPress 是 Docker 部署,再额外检查一下反向代理头是否传递正确。
大部分情况下,问题都能很快解决。
至少我这次踩坑,就是这么排查出来的。
[…] 👉 WordPress 接入 Cloudflare 后出现 Error 526,我是这样解决的 […]