我之前一直在用腾讯云来管理我的域名,但最近厌烦了越来越紧的互联网环境(腾讯云强制要求双因子认证),遂将域名服务迁移至赛博菩萨 Cloudflare。

配置 Cloudflare 的域名管理

  1. 注册 Cloudflare 并添加域名,管理位置
  2. 更新腾讯云的设置,按照「修改域名 DNS 服务器」的说明更新服务器地址,等待几个小时后可以看到是否更新成功
  3. 记得更新DNS记录,对于不同的CNAME来解析到不同的位置
  4. 可以在控制面板看到访问数据,dnsmap可以查看解析图

注意到 Cloudflare 默认不使用SSL来访问,这会导致重定向循环。解决重定向次数过多,需要在配置面板>SSL中设置策略为完全(严格)。

原理如下:

  1. Cloudflare 的“Flexible”模式

    • 在“Flexible”模式下,Cloudflare 和用户之间的通信使用 HTTPS,但 Cloudflare 和源服务器之间的通信使用 HTTP。
  2. 服务器强制 HTTPS

    • 如果你的服务器配置为将所有 HTTP 请求重定向到 HTTPS,那么当 Cloudflare 以 HTTP 请求服务器时,服务器会将请求重定向到 HTTPS。
  3. 重定向循环的形成

    • 用户请求 https://www.drwang.fun
    • Cloudflare 使用 HTTPS 接收请求,但以 HTTP 请求源服务器。
    • 服务器将 HTTP 请求重定向到 HTTPS。
    • Cloudflare 再次尝试使用 HTTP 请求服务器,导致服务器再次重定向。
    • 这个循环不断重复,直到达到浏览器的重定向次数限制。

因此,使用“Full”或“Full (strict)”模式可以确保 Cloudflare 和服务器之间的通信也是 HTTPS,从而避免这种循环。

尽量使用 Full,因为GitHub Page有时候证书没有颁布下来,可能导致证书错误无法访问。具体信息可参见 使用Https访问GitHub Page官方文档

迁移域名

  1. 登陆腾讯云的域名管理平台,点击域名信息>域名转移,域名转出。
  2. 在邮箱获取转出验证码,复制到Cloudflare的转入对应的位置
  3. 等待5-7天的时间
  4. 记得撤销备案 ,在此处查看自己的备案信息
  5. 开启 DNSSEC 防止劫持域名
  6. 可以在 WHOIS 中查询当前域名注册商