Caddy添加cloudflare模块申请ssl证书

内网穿透之后,由于访问方式是http形式,感觉总不安全,想着给内网添加https增加安全性,在clodflare上解析内网地址,内网主机上安装npm进行反代,这种方式经过测试是可以的。但是由于我的N1-armbian服务器rom只有8GB,npm的镜像占用1G多,测试完就删除了。于是就换了caddy进行反代,但是官方的docker镜像不带有cloudflare模块,如果需要dns-api方式申请证书则需要重新编译。最后build之后还是空间不足,奈何还是记录一下。

 环境准备

 首先安装xcaddy,安装xcaady之前需要配置go环境,下载地址

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

构建包含 Cloudflare 插件的 Caddy 镜像

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

创建 Dockerfile来构建 Caddy 镜像,使用刚刚构建的 Caddy 二进制文件

FROM caddy:builder AS builder

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

FROM caddy:latest

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

构建并运行自定义 Caddy 镜像

docker build -t caddy-cloudflare .

 Docker compose配置

使用docker images查看构建的镜像,编辑 docker-compose.yml,同时需要在当前目录新建一个.env文件,内容为CLOUDFLARE_API_TOKEN=your_cloudflare_api_token

version: "3.7"

services:
  caddy:
    image: caddy-cloudflare
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - $PWD/Caddyfile:/etc/caddy/Caddyfile
      - $PWD/site:/srv
      - ./caddy_data:/data
      - ./caddy_config:/config
    env_file:
      - .env

 Caddyfile配置

example.com {
    tls {
        dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    }

    reverse_proxy 192.168.x.x:port
}

后续

既然caddy自动申请内网证书失败,为何不指定证书不让它再去申请呢。按照这个思路,通过acme使用dns-01的方式申请完成后再使用,经过折腾最后也成功了。重新配置一下。证书申请详见Acme申请证书,证书申请最好有科学上网的环境,不然很可能会失败。

version: "3.7"

services:
  caddy:
    image: caddy:latest
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - $PWD/Caddyfile:/etc/caddy/Caddyfile
      - $PWD/site:/srv
      - ./caddy_data:/data
      - ./caddy_config:/config
      - /etc/acme/a.example.xyz_ecc:/etc/acme
a.example.xyz {
    tls /etc/acme/fullchain.cer /etc/acme/a.example.xyz.key
    reverse_proxy 192.168.x.x:port
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇