今天发现 Cloudflare 免费计划的一个坑。

现在有一个三级域名 three.eterance.com 和一个四级域名 four.three.eterance.com,并且均使用宝塔自签名证书;SSL 开启完全模式。

不开启小黄云直连,两个网站均能打开,证书显示 R3:

开启后,三级域名能正常打开,证书显示 GTS CA 1P5,但是四级域名打不开。

DNS面板显示四级域名没有证书覆盖。

原因也很简单。如果你用过其他 CDN ,那应该会知道其他 CDN 加速开启 HTTPS 时还要向 CDN 节点上传证书——也就是说,访客到 CDN 要证书,CDN 到源服务器也要证书,正如上图中完全模式所示。

但是 Cloudflare 开启小黄云后却不需要自行上传服务器域名的证书,为什么?因为 CF 自动签了访客到 CDN 的证书(CF 称之为边缘证书)。但是免费版本的边缘证书只支持二级域名和三级域名,而四级域名不包括在内,需要自己上传证书。然而,CF 自己上传证书是要收费的。

免费的边缘证书只支持二级、三级域名

因此,解决方法很明朗了:如果要使用 CF 的 CDN 或者 CF 的 SSL 证书,免费计划不能使用四级域名,否则访客会无法打开;但是如果只有 CDN 到源服务器,那么倒是可以,比如 WordPress 加速系列(6):使用 Cloudflare for SaaS 加速非中国大陆访问 – Eterance的小窝