caddy 使用阿里云的域名通过dns验证申请ssl证书

1.新建 Dockerfile 构建镜像

TypeScript 复制代码
# Dockerfile
# 使用官方构建镜像作为基础
FROM caddy:2-builder AS builder

# 设置 Go 模块代理为国内镜像(关键步骤)
ENV GOPROXY=https://goproxy.cn,direct \
    GO111MODULE=on \
    CGO_ENABLED=0

# 运行 xcaddy 来构建,并添加阿里云 DNS 模块
RUN xcaddy build \
    --with github.com/caddy-dns/alidns

# 使用最新的官方 Caddy 镜像作为运行环境
FROM caddy:latest

# 将构建好的 Caddy 文件从构建阶段复制过来
COPY --from=builder /usr/bin/caddy /usr/bin/caddy

2.新建 Caddyfile 配置文件

TypeScript 复制代码
{
    http_port 8080
    # 开启调试日志
    debug
}

:8080 {
    respond "Hello from Caddy on port 8080" 200
}

http://192.168.1.141:8080 {
    handle_path /hinas* {
        reverse_proxy 192.168.1.141:80
    }

    handle {
        respond "Path not matched: {uri}" 404
    }
}

home.jcdone.cn {
        # 全局配置:自动 HTTPS,Caddy 会自动申请证书
        tls {
	        dns alidns {
	            access_key_id {env.ALIYUN_ACCESS_KEY_ID}
	            access_key_secret {env.ALIYUN_ACCESS_KEY_SECRET}

	        }
             # 增加超时时间
             propagation_timeout 5m
	   }

        # 开启压缩
        encode gzip zstd
        

        # 规则2:访问 /alist 转发到 AList
        # 假设 AList 运行在 192.168.1.100 的 5244 端口
        handle_path /hinas* {
	        # 去掉 /hinas 前缀再转发给后端
	        uri strip_prefix /hinas
	        reverse_proxy 192.168.1.141:80 {
	            header_up Host {host}
	            header_up X-Real-IP {remote_host}
	            header_up X-Forwarded-For {remote_host}
	            header_up X-Forwarded-Proto {scheme}
	            header_up X-Forwarded-Prefix /hinas
	        }
        }
}

3.新建 /mnt/sda1/docker-data/caddy/config he /mnt/sda1/docker-data/caddy/data 目录

4.执行docker 命令

TypeScript 复制代码
docker run -d \
  --name caddy-alidns \
  --restart unless-stopped \
  --network host \
  --dns 223.5.5.5 \
  --dns 223.6.6.6 \
  -e ALIYUN_ACCESS_KEY_ID="LTAI58VxU" \
  -e ALIYUN_ACCESS_KEY_SECRET="YGUzJpCrXyCqO" \
  -v /mnt/sda1/docker-data/caddy/Caddyfile:/etc/caddy/Caddyfile \
  -v /mnt/sda1/docker-data/caddy/data:/data \
  -v /mnt/sda1/docker-data/caddy/config:/config \
  caddy-alidns:latest

5.如果没有问题,ssl证书将会被申请

相关推荐
tg_xianheyun12 小时前
亚马逊云服务器部署网站的步骤与上线检查清单
服务器·阿里云·云计算
AliCloudROS12 小时前
用阿里云 ChatOps Agent 找回消失的日志:内核漏洞修复换盘后的 SLS 采集断流排查
安全·阿里云
做运维的阿瑞14 小时前
Terraform 入门实战:安装与实施
云原生·云计算·terraform
程序猿老A15 小时前
轻量应用服务器怎么搭建网站?
服务器·阿里云
可达智灵16 小时前
堵了门,钥匙还在:一次持续九个月的 AWS 接管修复
云计算·aws·可达智灵
云边云科技_云网融合17 小时前
混合云组网难题破解:SD-WAN 如何打通 AWS 与阿里云,让总部分支访问稳如专线
阿里云·云计算·aws
会议咨询17 小时前
2026年信息学、智能通信与云计算国际会议(IICC 2026)
云计算·信息学·智能通信
HelloWorld工程师17 小时前
不改动任何历史配置,也能让 SSL 证书自动续期
linux·服务器·网络协议·https·ssl
zxanz117 小时前
泛域名 SSL 证书怎么申请?需要准备什么?
网络·网络协议·ssl