Caddy:方便的后端+自动HTTPS


内网部署 NAS,在配 TLS 的时候,想到了群友推荐的 Caddy,试用了一下果然很神。和 nginx 相比,不需要复杂的配置文件,几行配置就能完成反代+自动 HTTPS。

目标:设置域名解析内网 ip,并为域名配置 TLS

省流:caddy + cloudflare 模块,用于 Let's Encrypt 的挑战认证

 

设置域名解析

cloudflare 域名可以参考 玩转 Cloudflare ,注意需要设置为“仅DNS”,使用 cloudflare 的代理肯定访问不了内网。

 

编译 caddy

使用 xcaddy 编译带 cloudflare 插件的 caddy

sudo pacman -S xcaddy # archlinuxcn 源,用 AUR 也可以
xcaddy build --with github.com/caddy-dns/cloudflare
sudo pacman -Rs xcaddy # 删除

把生成的 ./caddy 拷贝到服务器

 

获取 cloudflare api

https://dash.cloudflare.com/profile/api-tokens 如图,给 Zone.DNS 读写权限:

 

配置文件及运行

在任意文件夹下新建 Caddyfile 

{
        acme_dns cloudflare [API_KEY]
}

example.com {
        reverse_proxy localhost:5244
}

sub.example.com {
        reverse_proxy 192.168.3.42:8080
}

运行

sudo ./caddy run

服务就跑起来了。sudo ./caddy start 可以扔到后台访问,当然,跑起来没问题之后,建议还是使用 systemd 统一管理。编辑 /etc/caddy/Caddyfile,并将刚刚编译的 caddy 覆盖 /usr/bin/caddy,注意每一次更新 caddy 都要重新覆盖。


运行时间 427 天 | 总访问量