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

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

从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. 博主站点现在用的是 SaaS 吗?

    1. @Rind 不是,博主这个站还是早年接入的Partner
  2. The hostname is using Cloudflare and cannot be activated with an TXT or HTTP validation token. To activate the custom hostname, the DNS target needs to point to the SaaS zone

    要添加两个TXT记录和CNAME记录到origin.a.com.cdn.cloudflare.net,才能验证成功..
    验证成功后删掉origin.a.com.cdn.cloudflare.net记录,直接解析到cf.example.net[这是我自选IP的域名,已经设置好了分区运营商解析],CF会验证CNAME吗?其他之前CNAME接入的域名也是如是设置.

    之前没用SAAS接入,用NS接入验证后,改成CNAME,用了一周左右,就被CF验证NS无效清退域名,这才用SAAS接入.

    另外WAF规则是直接在回源域名a.com的CF管理页设置吗?还是把b.com添加到CF才能设置WAF规则呢?

    1. @GreenSea WAF功能直接在a.com下的对应页面设置即可,SaaS域名不需要接入CF;CF不会验证CNAME,但是建议海外线路解析到这个zone的CNAME~
  3. 按照你说的配置了,最后example.b.com打不开呢,origin.a.com可以打开呢,请问是什么情况呢

    1. @带带弟弟 origin.a.com的宝塔上面还需要把example.b.com绑定吗?
  4. 感谢楼主!已经成功添加了www.minebbs.com,请问根域名是无法通过这种方式添加吗,感觉还是差一点没完成,好难受awa

    1. @YYT 是可以的呀,我用的就是moelty.fun测试的,用同样的方式再添加一个
      1. @Luminous 诶,那解析的时候把www替换成@就可以了吗,能指导一下吗~
      2. @Luminous 已经成功了,感谢!
        1. @YYT 请问一级域名怎么实现的?就是minebbs.com怎么添加的?我在解析中用@+cname+源没成功。
  5. 你好,
    请问设置成功后如何在Wp Rocket插件(wordpress)绑定相应CF账号实现自动清理缓存?挂载的域名如何单独设置页面规则之类?还是和被挂载的域名共用页面规则?

    1. @迪亚莫 WP-Rocket插件我不是很清楚,但是这个设置是针对域名所在zone的,按理说只要能识别附加到的zone就可以以同样的逻辑实现。绑定的流程我记得是用API Key,你尝试生成一个包含附加到域名的zone权限的子密钥试一下吧,这个需要自己测试。至于页面规则和防火墙这些,都是继承被附加到zone的资源,是共用的。
      1. @Luminous 需要在宝塔把origin.a.com绑定源站吗?
      2. @Luminous 同问:需要在宝塔把origin.a.com绑定源站吗?
  6. 成功搞定,非常感谢博主!

  7. 你好博主,之前我不知道这是什么功能,然后进去没绑卡直接在输入卡信息的页面退出了,现在点开自定义主机名,那里也出现了“请联系客户成功经理以启用适用于 SaaS 的 SSL”,这算是可以激活了嘛?我的域名几年前买的某家的plesk plus,现在plesk地址也找不到了,现在用的萌精灵管理的,但是应该不能把域名删了然后重新接入CF?下一步应该怎么操作,直接改成CF的NS就可以吗?

    1. @Luma 通过Plesk接入的域名就珍惜吧,不要想着主动删除了,现在已经不能重新获得CF Plesk Plus订阅了,通过Partner的CNAME接入也没了。第三方接入的域名只是管理需要通过API,像dnsflare/TlOxygen面板自己搭建一个都可以,比如博主的ty.mk/cf。至于你说的没有激活按钮文章里有提到,你新增一个通过官网接入的域名从那个里面为账户激活这项功能就可以了。
  8. 感谢博主分享,想问下这个操作是不是先要绑定信用卡?

    1. @MX 是的,像跨境通之类的外币借记卡也可以,不过我看到CF也支持Paypal的呀
  9. 成功搞定,非常感谢博主!提醒一下使用DNSPOD的朋友,添加自定义主机记录的时候要先等TXT记录生效再添加CNAME,不然的话会产生冲突,我同时解析的TXT和CNAME,结果卡在验证这一步一个多小时😵

    1. @珂泽 你怎样搞的,四个TXT文件都验证成功了,但打不开网页
  10. 那这样,必须得有2个域名才能使用dnspod之类的?

    1. @小沫 嗯,在CF需要保有一个NS接入的域名,不过CF的宽容度那么高,6数字xyz、免费的eu.org、freenom都可以,这个应该不是障碍吧~
      1. @Luminous 好了,谢谢啦
  11. 催更,一个月了。。

  12. 最近开始做CDN相关工作,感觉CF的业务背景和很多公有云厂商的思路不太一样,值得研究一下,业务和股票都是~

    1. @SPtuan CDN最大头的带宽成本上,CF的扩张模式与移动颇为类似,初期投入极大成本拓展用户,挟用户量促进基础设施建设并且联合中游IDC一起倒逼ISP提供廉价带宽(ISP通过向CF“赠予”带宽可获得对很多网站连通性的支持)。另外就是CF不止局限于CDN本身,基础用户大量样本也为现在主推的安全功能提供了很大的支持。感觉就是,起点高(选择Anycast技术起步),格局广(规模扩张的同时业务也在扩张)。潜在的劣势也很明显,CF很依赖于ISP提供的折扣带宽,比如香港这样成本高昂的地区只接入了2*100G的HKIX(Akamai高达1.1T接入)。整体褒贬不一吧,也是很难复刻的,有一点始终是华尔街企业一大特色,短期实现盈利非常困难。
  13. 确实不错,已成功,谢谢博主,现在很少有这样的好文章了。

  14. 请问博主有没有什么方法可以使这个oringin.a.com屏蔽访问呢?

    1. @Steven Sa 那是个无效记录,在CF的防火墙规则阻止所有访问,或者在源站设置return 444都可以
  15. 直接把1.a.com指向2.a.com,cf直接抛出Code:1000错误。
    想白嫖到极致想多了.

  16. 你好 我添加了提示这个custom hostname does not CNAME to this zone.啥原因

    1. @likeyou 我也是这个问题,不知道原因
      1. @龙 上次见到一个是解析设置错了的,CF让你添加解析域名框是整个域名xxx.example.com,自己在DNS添加的时候只填写xxx就行了,而不是把xxx.example.com都填进去整成xxx.example.com.example.com了
        1. @Luminous 什么意思
  17. “在您的区域下输入一个主机名以用作您的主机名的默认源服务器,例如回退。a.com。回退源需要是您的区域中的代理 DNS 记录。”

    你好,我有个a.com域名NS接入了CF了,我看到你博客写的origin.a.com域名,这个是个转接到a.com的二级域名吗?.
    这样在其他解析服务商比如dnspod,把www.b.com或者blog.b.com通过cname解析到origin.a.com,然后origin.a.com再自动分配到a.com上吗?

    还有没有添加自定义主机名显示回退源状态:待部署错误 DNS records are not setup correctly. Origin should be a proxied A/AAAA/CNAME dns record
    origin.a.com这个原站在CF里设置什么类别的解析到a.com

  18. 怎么没看懂呢

  19. 学习了,感谢分享!

  20. 还是有点深