使用ZoneABC 子域名接入 Cloudflare SaaS
本文介绍了如何利用 ZoneABC 提供的免费子域名服务来接入 Cloudflare SaaS,从而将你未托管在 Cloudflare 的域名也纳入其强大的 CDN 和安全保护之下。
前言
ZoneABC 是一个由一群技术爱好者、专业工程师和项目经理组成的非营利性组织。其使命是通过提供免费、可靠的子域名服务,并由 Cloudflare 提供企业级保护,来降低开发者、学生、教育工作者和开源社区的入门门槛。ZoneABC 坚信,稳定、安全的互联网基础设施不应仅是大型企业的特权,而是应该让所有用户都能专注于创新,而无需担忧基础设施问题。
目前ZoneABC 开启了 Cloudflare SaaS ,可以将尚未托管在Cloudflare 的域名接入Cloudflare CDN。
准备工作
- 一个未被Cloudflare 托管的域名
 - 一个ZoneABC 账号
 
接入步骤
- 首先去这里注册一个 ZoneABC 账号,然后登录注册自己喜欢的子域名。
 

- 然后在ZoneABC 控制台,点击子域名,添加A或者AAAA记录(你的实际服务器),并开启代理。
 

- 然后刷新页面,即可看到已经可以添加自定义主机名。
 

- 点击详情,查看要验证的记录,添加DCV验证记录,添加验证所有权记录,添加CNAME记录,刷新状态。
 






- 然后在源服务器上生成自签证书
 
mkdir -p /etc/ssl/custom/
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/ssl/custom/key.pem -out /etc/ssl/custom/cert.pem然后一路无脑回车,就可以生成自签证书了。

- 然后在源服务器上添加两个网站,一个是 
yoursubdomain.zabc.net,一个是www.yourdomain.com。 
这里以Nginx为例:
# yoursubdomain.zabc.net.conf
server
    {
        listen 80;
        listen [::]:80;
        server_name yoursubdomain.zabc.net ;
        location / {
            return 301 https://$host$request_uri;
        }
        access_log  /home/wwwlogs/yoursubdomain.zabc.net.log;
    }
server
    {
        listen 443 ssl;
        listen [::]:443 ssl;
        http2 on;
        server_name yoursubdomain.zabc.net ;
        ssl_certificate /etc/ssl/custom/cert.pem;
        ssl_certificate_key /etc/ssl/custom/key.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # 所有请求都返回 403
        location / {
            return 403;
        }
        error_page 403 /403.html;
        location = /403.html {
            root /home/wwwroot/yoursubdomain.zabc.net;
        }
        access_log  /home/wwwlogs/yoursubdomain.zabc.net.log;
    }# www.yourdomain.com.conf
# HTTP 到 HTTPS 的重定向配置
server {
    listen 80;
    listen [::]:80; # 监听 IPv6 的 80 端口
    server_name www.yourdomain.com; # 定义域名
    # 将所有 HTTP 请求永久重定向到 HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
    # HTTP 访问日志
    access_log /home/wwwlogs/www.yourdomain.com_http_access.log;
    # HTTP 错误日志,记录警告及以上级别错误
    error_log  /home/wwwlogs/www.yourdomain.com_http_error.log warn;
}
# HTTPS 服务器配置
server {
    listen 443 ssl; # 监听 IPv4 的 443 端口,启用 SSL 和 HTTP/2
    listen [::]:443 ssl; # 监听 IPv6 的 443 端口,启用 SSL 和 HTTP/2
    http2 on; # 启用 HTTP/2
    server_name www.yourdomain.com; # 定义域名
    # SSL 证书和私钥路径
    ssl_certificate /etc/ssl/custom/cert.pem;
    ssl_certificate_key /etc/ssl/custom/key.pem;
    # SSL/TLS 安全设置
    ssl_session_timeout 5m; # SSL 会话缓存超时时间
    ssl_protocols TLSv1.2 TLSv1.3; # 仅允许使用 TLSv1.2 和 TLSv1.3,提高安全性
    ssl_prefer_server_ciphers on; # 优先使用服务器端定义的密码套件
    # 定义强大的 SSL 密码套件列表
    ssl_ciphers "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256";
    ssl_session_cache shared:SSL:10m; # SSL 会话缓存配置
    # 网站根目录和默认索引文件
    root /home/wwwroot/www.yourdomain.com; # 定义网站的根目录
    index index.html index.htm index.php default.html default.htm default.php; # 默认索引文件的查找顺序
    # 自定义错误页面
    error_page 403 /403.html; # 当出现 403 Forbidden 错误时,显示 /403.html
    error_page 404 /404.html; # 当出现 404 Not Found 错误时,显示 /404.html
    # 主要的 location 块,处理所有请求
    location / {
        # 尝试查找对应的文件、目录或返回 404 错误
        # $uri: 尝试直接匹配请求的 URI 为文件
        # $uri/: 尝试匹配请求的 URI 为目录(然后根据 index 指令查找默认文件)
        # =404: 如果以上都未找到,则返回 404 错误
        try_files $uri $uri/ =404;
    }
    # HTTPS 访问日志
    access_log /home/wwwlogs/www.yourdomain.com_https_access.log;
    # HTTPS 错误日志,记录警告及以上级别错误
    error_log  /home/wwwlogs/www.yourdomain.com_https_error.log warn;
}- 然后检测配置并重启Nginx
 
nginx -t
nginx -s reload即可添加成功


