Caddy + Cloudflare DNS API(DNS-01)模块的完整使用介绍自动SSL证书,解决 443 被封的证书问题

使用 Cloudflare DNS API,让 Caddy 通过 DNS-01 验证自动申请/续期 HTTPS 证书不依赖 80/443 端口

适合你的场景

子域名多、自动化证书

被封 80、443

走 Cloudflare CDN(橙云)

内网服务 / Docker / 反代

不想暴露真实 IP

安装依赖在 Debian/Ubuntu 系统上:

sudo apt update
sudo apt install -y curl git wget build-essential

官方预编译版本下载

wget https://github.com/caddyserver/xcaddy/releases/download/v0.4.5/xcaddy_0.4.5_linux_amd64.tar.gz

解压并安装:

tar -xzvf xcaddy_0.4.5_linux_amd64.tar.gz
sudo mv xcaddy /usr/local/bin/
sudo chmod +x /usr/local/bin/xcaddy

Go 安装方式:
需要先装 Go(官方要求 Go 1.20+)

sudo apt update
sudo apt install -y golang-go git

执行

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

移动命令

sudo mv ~/go/bin/xcaddy /usr/local/bin/

安装好 xcaddy 以后:执行

xcaddy build \
  --with github.com/caddy-dns/cloudflare

编译完成后会生成 caddy 可执行文件。移动到系统路径:

sudo mv caddy /usr/local/bin/
sudo chmod +x /usr/local/bin/caddy

查看已编译的 DNS 插件Caddy 支持的 DNS 插件列表可以直接用命令查看:

caddy list-modules | grep dns

查看是否安装成功

安装完成后可直接执行写入api

export CF_API_TOKEN="你的Cloudflare_API_Token"

编辑 Caddy 配置文件或者手动修改/etc/caddy目录

sudo nano /etc/caddy/Caddyfile

修改自己的域名与反代端口

www.123.com:2053 {

    tls {
        dns cloudflare {env.CF_API_TOKEN}
    }
    reverse_proxy 127.0.0.1:5212 {
        header_up X-Real-IP {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
    }
}

手动创建 caddy.service(官方推荐版本)
创建服务文件自启动

nano /etc/systemd/system/caddy.service

内容为需要自己更改api

[Service]
ExecStart=/usr/local/bin/caddy run --environ --config /etc/caddy/Caddyfile
Environment=CF_API_TOKEN=api

重载 systemd 并启动:

systemctl daemon-reload
systemctl restart caddy
systemctl status caddy

systemd命令
启动服务

systemctl start caddy

查看状态:

systemctl status caddy

停止服务

systemctl stop caddy

重启服务
停止后立即启动用于修改配置或 systemd 服务文件后生效

systemctl restart caddy

查看状态:

systemctl status caddy

设置开机自动启动

systemctl enable caddy

禁止开机启动

systemctl disable caddy

打包文件

mkdir -p ~/caddy_backup
cp /usr/local/bin/caddy ~/caddy_backup/
cp -r /etc/caddy ~/caddy_backup/etc_caddy
cp /etc/systemd/system/caddy.service ~/caddy_backup/  # 如果用 systemd
# 如果有自定义证书目录,也复制
# cp -r /var/lib/caddy ~/caddy_backup/var_lib_caddy

cd ~/caddy_backup
tar -czvf caddy_backup.tar.gz *

上传到root目录
解压并恢复

# 解压到 /usr/local/bin
tar -xzvf caddy_backup.tar.gz -C /usr/local/bin

# 设置可执行权限
chmod +x /usr/local/bin/caddy

# 检查 Caddy 版本
/usr/local/bin/caddy version

解压


cd /root
tar -xzvf caddy_backup.tar.gz -C /

# 设置权限
chmod +x /usr/local/bin/caddy

# 如果用 systemd
systemctl daemon-reload
systemctl enable caddy
systemctl start caddy
systemctl status caddy

caddy配置

这样就安装完成了官方地址