【CloudFlare】官方免费CNAME接入教程

发布于 / 信息应用 / 64 条评论

从2021年11月开始,CloudFlare禁用了Partner使用的zone_setAPI以避免滥用(因为该API接入不需要验证域名所有权),通过Partner实现CNAME接入的方式近乎落幕,仅剩Plesk空间存量的ServerShield by Cloudflare插件订阅能够正常接入。几个月过去了,官方也并没有对未来合作伙伴如何进行接入新域名给出任何解释。

错过了Partner的时代,官方的CloudFlare for SaaS也提供了一种更灵活的CNAME接入方式,一起来看看吧。


一、功能简介

CloudFlare for SaaS不是个新功能,这里单独拿出来讲,主要是几天前CF调整了一波免费额度。过去是每个域名收取2USD/月的费用,现在不仅提供100个域名免费额度,而且超额后每个域名仅按0.1USD/月收取费用,非常良心。

官方公告https://blog.cloudflare.com/waf-for-saas/

CloudFlare中一个完全接入的域名即为一个zone,点进去包括套餐、安全等等都是针对这一主域名配置的。官方SaaS功能针对的是你服务的客户,开放这项功能允许使用他们自己的域名直接附加在你的zone里,享受你zone包含的安全、加速等功能。

说起来可能不是很直白,这里举几个应用场景的例子:

应用场景1a.com通过NS接入了CF,b.com未接入CF;可以通过SaaS功能实现1.b.com/2.b.com等直接附加在a.com上,通过CNAME指向CF的节点。

应用场景2a.com通过Plesk接入了CF,具有免费的Plesk Plus版本,b.com未接入CF或使用的免费版;可以通过SaaS功能实现1.b.com/2.b.com等直接附加在a.com上,享受a.com域名下的ECC+RSA双证书、页面规则、高级防火墙权益。

简而言之,可以通过这项功能,实现其他域名的CNAME接入以及对zone权益的共享,有兴趣的话,接着往下看吧~


二、配置接入

订阅CloudFlare for SaaS

打开一个域名,选择【SSL/TLS】下的【自定义主机名】,点击【启用CloudFlare for SaaS】后根据指示绑定外币卡或者PayPal,订阅CloudFlare for SaaS功能。

CloudFlare for SaaS订阅本身是针对整个计费账户的,所以通过Partner接入的域名出现【请联系客户成功经理以启用适用于SaaS的SSL】时,只需要选择个通过官方NS激活的域名启用订阅后即可使用。这里猜测可能是Partner接入的商务权限交给了合作伙伴,方便下放优惠和服务那些,我们绕过去就行了。

激活页面中文翻译比较滞后,从英文的可以看到免费额度已经进行更新,可以放心使用。

设置源站

选择一个承载的域名zone点进去,依然是【SSL/TLS】下的【自定义主机名】,首先要设置附加上域名的源站。在这之前要在承载的域名zone中设置一个子域名作为源站的来源,比如origin.a.com,在Partner或者官方DNS设置好它的源站(注意是是在CF里添加,和正常添加网站的流程一样)。

SaaS这里的源站叫回退源(Fallback Origin),输入刚才设置的子域名并点击【Add Fallback Origin】,它会同步这个子域名设置的源站作为后续在此接入域名的源站。有些人就会问了,这样设置那不是后续SaaS添加的所有其他域名就只能用同一个源站了?答案确实是这样,为每个SaaS域名自定义源站需要Enterprise以上套餐,有多域名需求多开几个zone吧(苦笑)。

添加自定义主机名

后续的工作就很简单了,点击【添加自定义主机名】,输入你要添加的未在CF接入的子域名。建议直接选择TXT验证,因为除了证书还有另一条TXT记录要添加,一起加上去比较方便。

验证域名所有权

添加完成后,按要求解析证书和主机名两个TXT记录,解析生效后10分钟左右即可验证通过,到此这个SaaS域名就正确的添加到了你的zone中并接入了CF。

特别提醒,如图这里CF给出的验证TXT名称是应完整域名的解析记录,所以在自己的第三方DNS配置的时候,填入的主机名应当是example_cf-custom-hostname.example,如果直接复制框内的内容把根域名b.com填进了主机名全域就变成了example.b.com.b.com了,是错误的。配置完成之后你可以通过直接复制的域名来检查TXT记录是否匹配,推荐MySSL的工具(点击前往)。

经过测试,不论以何种方式验证并签发证书,只要保持SSL正确指向CloudFlare,系统就能够在到期前一个月自动为你续期证书,无需进行手动的操作。相应的,SaaS页面Certificate validation method也会变成HTTP Validation

SaaS域名解析

添加进去的SaaS域名,CF并不会给你提供明确的CNAME供指向。如果是官方接入的可以直接CNAME到你刚刚设置的源站域名比如origin.a.com,通过Partner接入的直接解析到源域名对应的CNAME比如origin.a.com.cdn.cloudflare.net即可。其他的配置比如分线路解析、自选IP就可以按照自己的喜好去设置了,在此不过多赘述。

此外,对于防火墙规则、页面规则,直接将添加进的域名输入其中即可圈定范围,完成对于其细则的设置。


三、结语

CloudFlare for SaaS是官方提供的一项非常方便的免费功能,弥补了早期未通过Partner接入只能强制NS接入的缺憾。有官方保障、灵活CNAME、免费的优点,也有源站不灵活等缺点,肯定还是不如已经通过Partner/Plesk接入的域名灵活。

最后要感谢CF提供这样的免费功能,希望未来能够下放自定义源站的功能(想桃子),也欢迎大家在评论区分享你们对这项功能的其他应用方式,一起学习交流吧~


*原创文章,转载请注明出处

转载原创文章请注明,转载自: Luminous' Home » 【CloudFlare】官方免费CNAME接入教程

  1. 按照这个顺序来弄,没有报任何错误,证书状态有效,主机名状态有效,但是自定义的主机名就是返回ssl证书无效,最近这个问题弄两天了,有没有遇到同样问题的

    1. @docker 不太清楚你这个问题出在哪里,你描述的还是比较模糊,建议找个操作过的直接上你的账户帮你看看
  2. 经过测试,不论以何种方式验证并签发证书,只要保持SSL正确指向CloudFlare,系统就能够在到期前一个月自动为你续期证书,无需进行手动的操作。相应的,SaaS页面Certificate validation method也会变成HTTP Validation。

    这个续签自己不用操作了吗

    1. @zuozihan 不需要操作,这个流程会在到期前30天完成
  3. 烦请问一下

    ★应用场景1:a.com通过NS接入了CF,b.com未接入CF;可以通过SaaS功能实现1.b.com/2.b.com等直接附加在a.com上,通过CNAME指向CF的节点。

    我如果需要购买 pro 计划 那我应该买在哪个域名上面

    1. @haige 购买的Pro加在NS接入的域名上面,Business以上就不需要了直接能够开启CNAME支持。
  4. 我想问一下,我添加了txt解析记录,但是始终提示待验证怎么办
    custom hostname does not CNAME to this zone.

  5. 试了一下,没成功。
    Cloudfalre: a.com
    aliyun: b.com
    个人猜测主要原因是 a.com使用A记录指向了阿里云服务器的IP,但我在nginx中并未配置这个a.com,所以我b.com 通过CNAME解析到a.com时,提示301 moved。

    1. @堆上小栈 A域名只将其解析记录作为回退源共享给B,其他包括源站绑定都与A无关。B目标是指向CLOUDFLARE的IP,不止是简单的CNAME到A,要检查一下A当前是否解析的是CLOUDFLARE的IP。
      1. @Luminous 谢谢,已经解决了,我遇到的问题是没有开启严格模式。
  6. 大佬,请教一下,我要是验证完成了,把那两条TXT删除了,之后会在到期前自动续签成功吗?谢谢

    1. @小熊 是的,会转成HTTP验证方式自动续期
  7. 博主你好!saas接入添加自定义主机,怎么实现www和不带www的接入呢,比如我的域名,baidu.com,我网站设置了www和不带www,那添加自定义主机的时候怎么添加进去,求指点。

    1. @妮不懂 需要对每一个域名单独添加,并不能在www下包含@
  8. 有个小疑问,在只有一台服务器的情况下,境外走 Cloudflare CDN 的话,那么 Nginx 获取的来源 IP 应该是 CF 的 IP 了吧,虽然 CF 提供了 CF-Connecting-IP 标头用来传递真实 IP,此时又要加一层判断 IP 是否是 CF 的,感觉就很麻烦了…请问 @Luminous 大佬是怎么解决这个问题的呢

    1. @ATP 原来 Cloudflare 有公布 CDN IP...那就没问题了(´▽`)
      1. @ATP 是的,通过https://www.cloudflare.com/ips-v4就可以获得
  9. 需要两个域名才可以实现吗

    1. @主机测评 是这样,在同一个zone下会因为DNS设置冲突出现问题
  10. 你好,问下那现在这个example.b.com的设置,比如缓存优化啥的,是回到主页的 b.com 里去设置?还是会变成这个zone下面的设置?

    1. @Google 会继承所依附的zone的各种设置,不需要回去设置
      1. @Luminous 那这样的话,就很麻烦了,旧的相当于不能新增,得在新的不用的域名下设置东西,然后如果要改得两边一起改。然后如果还有其他域名,就乱了。555
  11. 我想继续 看到博主的文章,可是并没有发现rss,也不能注册,那如何知道更新了文章?有其它有推送功能的位置吗?如推特,微博等,个人站是自由,不过也可以兼顾推送的优点,让那些平台当推送订阅功能就是了。网站也没有通知功能样,不是说非要,只是想表达,没有任何功能来发现文章更新,可能 是我没发现,博客的相关功能还了解的不多。所以问下,希望了解如何接收到文章更新的消息。

    1. @进化 你可以从这里订阅本站的RSS:https://luotianyi.vc/feed,电报也有部分bot收录了这个rss。并没有准备其他的订阅渠道,因为本身更新很鸽……