安装 Caddy:基于 Cloudflare 托管域名的自动签发证书(dns.providers.cloudflare)

普通安装的 Caddy 是不能使用自动证书的,需要安装插件。

这里是一个以 Cloudflare 托管域名的例子:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
sudo caddy add-package github.com/caddy-dns/cloudflare

编辑添加变量:

systemctl edit caddy.service

在顶部添加

[Service]
Environment="CLOUDFLARE_API_TOKEN=123456"

然后配置 /etc/caddy/Caddyfile

appinn.com {
    tls {
        dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    }
    reverse_proxy 127.0.0.1:3000
}

最后重启:

sudo systemctl daemon-reload
sudo systemctl restart caddy

如果 CLOUDFLARE_API_TOKEN 本身没有问题,证书就签发好了。

普通安装的Caddy完全可以解决证书的问题啊

我就简单写了一个

llm.XXXXXXX.cc {
	reverse_proxy localhost:5010
}

然后在Cloudflare上设置DDNS就行了

1 个赞

哦,我想起来了。忘记说那个前提就是在局域网内,没有 433 的情况下

哦哦,确实,我之前80和433没开的时候,折腾过好一阵子,不过还没搞定证书,发现iinet可以开放这俩端口,然后就没再折腾

iinet是神马

我家的宽带提供商,你可以理解为是“中国电信”的平替

那句话你就理解成“不过还没搞定证书,就发现中国电信可以开放这俩端口”

羡慕,居然有这俩端口

是啊,不仅有这俩端口,还有静态IP,所以,在Cloudflare上直接做一个转发,然后就全都解决了。

当然,为了双保险,顺便在DuckDNS上也做了一个转发。万一一个不工作了,另外一个可以顶上…….虽然目前还没遇到这种情况就是了

这妥妥的商业宽带待遇:joy:

不太清楚在国内对应什么,至少我认识的,家里都有公网IP,我是折腾得比较多的,所以DDNS配Caddy。有不怎么折腾的,就一个Tailscale,然后想干啥干啥。当然,也有想折腾,但是被家里两岁的崽无数次给服务器按关机,教做人的…….

话说我同学/同事里,喜欢折腾的不少啊