前言
最近在折腾Caddy,发现挺多有趣的非标准模块,例如这个github.com/caddy-dns/cloudflare
就非常必要,通过CF的dns来验证域名办法SSL证书。还有些WAF模块也不错。
教程
准备工作
首先大多数人都是linux下跑caddy的吧,所以准备一台Linux的机器,我这里用的debian11。
编译需要用到go环境,部分包要求1.16以上,这里简单写一下安装方法:
wget https://go.dev/dl/go1.18.2.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin go version
下载官方编译程序xcaddy:
wget https://github.com/caddyserver/xcaddy/releases/download/v0.3.0/xcaddy_0.3.0_linux_amd64.deb dpkg -i xcaddy_0.3.0_linux_amd64.deb
看到如下信息说明安装成功了:go version go1.18.2 linux/amd64
准备编译模块的清单
这里我准备编译通过CloudFlare和DNSPod的DNS验证SSL证书的模块进去,对应的模块地址为:
- github.com/caddy-dns/cloudflare
- github.com/caddy-dns/dnspod
开始编译
xcaddy build \ --with github.com/caddy-dns/cloudflare \ --with github.com/caddy-dns/dnspod
冲杯咖啡的功夫就编译好了,会提示如下信息:
2022/05/17 11:27:31 [INFO] exec (timeout=0s): /usr/local/go/bin/go build -o /root/caddy -ldflags -w -s -trimpath 2022/05/17 11:28:27 [INFO] Build complete: ./caddy 2022/05/17 11:28:27 [INFO] Cleaning up temporary folder: /tmp/buildenv_2022-05-17-1127.2011602149
编译好的文件就在 ./caddy
了,复制到任意Linux下均可直接执行。
测试是否生效
文章目录[隐藏] 前言 配置caddy服务端 前言 懒人直接看下面的跟着做就行了,想要自己编译的可以看这个 配置caddy服务端 wget https://www.liujason.com/wp-content/uploads/caddy_v2.5.1_cf_dnspod -O /usr/bin/caddy chmod +x /usr/bin/caddy mkdir /etc/caddy/ echo ' 【这里换成你的域名】 { tls { dns cloudflare 【CF你的token】 resolvers 1.1.1.1 } reverse_proxy https://【源站IP】 { # 这里是用的443回源,你也可以用http,然后下面的transport http部分就可以删了 transport http { tls tls_insecure_skip_verify # 源站用的是自签名的证书,所以跳过验证 } # 给回源header添加host header_up Host 【回源域名,可以和上面的域名一样】 header_up X-Forwarded-Host 【同上】 # 你也可以添加其他参数 # 其中X-Forwarded-For是默认添加的,所以源站是能知道访问用户的实际IP的 } } […]
附上下载链接:https://www.liujason.com/wp-content/uploads/caddy_v2.5.1_cf_dnspod