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证书将会被申请

相关推荐
IvanCodes2 小时前
七、Linux Shell 与脚本基础
linux·云计算
hhzz2 小时前
阿里云基础网络的创建、业务隔离及多网之间的互联互通
网络·阿里云·网络架构
久绊A2 小时前
阿里云 ECS 与 VPC 配置实操
阿里云·云平台
dong_beijing3 小时前
rtmp/flv直播源站搭建方法
服务器·centos·云计算
hhzz12 小时前
利用Terraform格式模板文件创建和部署基本网络资源
阿里云·云原生·ros·terraform·资源编排
切糕师学AI21 小时前
什么是 FinOps 财务运营(Financial Operations)?
云原生·云计算
伊织萌2 天前
在 Ubuntu 22.04 上安装 PostgreSQL
linux·服务器·ubuntu·postgresql·云计算
无籽西瓜a2 天前
SSL/TLS工作流程以及HTTP与HTTPS详解
http·https·ssl
sun03222 天前
【AWS】【服务】aws 中的各种服务 ,比如 ECS、S3 、EC2 、 Certicicate Manager、CloudWatch等
云计算·aws