通过CF Partner设置你的域名cname记录使用CloudFlare的cdn

今天收到了CloudFlare Partner的批准邮件,点击邮件的重置密码连接后设置一下密码就能登陆到CloudFlare Partner的后台其间会根据提示选择回答几个问题,如:

问你是在乎性能还是安全、有多少客户、客户主要地区、用的主机销售面板是什么、支付后台是什么等等之类的,因为我不销售主机,所以销售面板和支付后台这些都是乱选择的。期间可以生成Host API Key,要是生成了就拷贝记录下来,之后在控制台能查看到API Key,也能重新生成的。

登入控制台后因为没有接入域名,所以空空如也,下面我们就举例添加域名itkylin.com的一个cnmae记录指向到CF的cnmae记录使用cf的CDN。

方案背景描述:

假设域名itkylin.com托管在阿里云,因不方便修改此域名的NS记录以直接使用CloudFlare的DNS,所以只能以CloudFlare Partner API方式接入至CloudFlare,现假设www.itkylin.com这个主机名要套上CloudFlare的CDN以隐藏源IP及实现轻量的防DDOS功能。

实施步骤:

一、有一个CloudFlare Partner账号或有提供使用CloudFlare Partner的平台,申请Partner账号步骤此处省略;

二、有一个CloudFlare个人账号,没有请自行注册一个,收到确认邮件后登陆进去不用添加域名,因为一会通过CloudFlare Partner API方式接入域名后就等于是添加了一个域名了。

三、通过cf partner api接入添加域名itkylin.com的cname记录www.itkylin.com有两种方式:

方式一:通过执行cloudflare-partner-cli.py Python程序接入添加域名itkylin.com的cname记录www.itkylin.com

方式二:通过登陆CFWEB管理界面接入添加域名itkylin.com的cname记录www.itkylin.com

3.1)因为是测试,暂时没时间登陆服务器搭建LNMP环境和部署CFWEB管理界面了,所以使用方式一,直接随便在一台vps上wget下cloudflare-partner-cli.py脚本文件用python执行就可以了。从本站下载cloudflare-partner-cli.py。你也可以从github下载:wget https://github.com/fffonion/cloudflare-partner-cli/raw/master/cloudflare-partner-cli.py

3.2)编辑cloudflare-partner-cli.py
修改:

1
HOSTKEY = "None" # HOSTKEY_ANCHOR

为:

1
HOSTKEY = "xxxxxx此处是你的cloudflare partner api keyxxxxxxx" # HOSTKEY_ANCHOR

记得用双引号把api key括起来。

3.3)编辑修改完就可以执行该python脚本了,如果你的系统没有python,请执行如下命令安装:
Centos:

1
yum install python -y

Ubuntu:

1
apt-get install -y python

3.4)执行python cloudflare-partner-cli.py命令,会提示你输入邮箱和密码,此处请输入你cloudflare个人账号的邮箱和密码,切记不是cloudflare partner的邮箱和密码,是个人账号的邮箱和密码! 操作如下:
[email protected]:~# python cloudflare-partner-cli.py
邮箱 > [email protected]
密码 > www.itkylin.com
INFO – [email protected] 已登录
================================
选择所需的操作,输入数字:
1. 添加/修改DNS记录
2. 删除DNS记录
3. 重新生成host key
4. 开通SSL
5. 删除接入的域名
6. 显示所有接入的域名
7. 显示DNS记录
8. 接入域名
9. 退出当前帐号
>
根据提示选择,本例选择的是8(接入域名)
> 8
根域名 > itkylin.com
子域名 > www.itkylin.com
源站地址 > demo.itkylin.com
INFO – 设置成功! 请将www.itkylin.com的CNAME记录设置为www.itkylin.com.cdn.cloudflare.net
================================
以上信息提示设置成功了,这时可以输入9就可以退出了。

这时,登陆你的CloudFlare Partner后台,点击域名就可以看到已接入成功的域名:

登陆你的CloudFlare个人账号后台,也能看到已添加的域名,此处就不截图了。

3.5)最后,登陆你的域名itkylin.com所在注册商的DNS管理后台,设置www.itkylin.com的cname值为:www.itkylin.com.cdn.cloudflare.net
然后添加demo.itkylin.com这个A记录的值为152.16.65.18 (注,此举例的IP均为虚构,勿当真),源站地址只能设置主机名的格式,不能直接设置IP,如若设置IP会提示报错误信息:

ERR – 报错: Invalid resolve_to: 152.16.65.18. (act: zone_set)

四、至此,所有设置已完成,现在你可以在源站IP 152.16.65.18的服务器上部署网站www.itkylin.com了,当访问www.itkylin.com时首先访问的是cloudflare cdn的IP,然后cloudflare才访问你的源站。