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

相关推荐
爱笑的源码基地12 小时前
拿来即用:基于Spring Cloud+UniApp的智慧工地源码,架构清晰易扩展
java·云计算·源码·智慧工地·程序·开箱即用·数字工地
yyuuuzz13 小时前
国际云服务器的技术特点与使用经验
运维·服务器·网络·数据库·云计算·aws
comcoo14 小时前
阿里云百炼 + OpenClaw 打造超强自动化 AI
阿里云·自动化·云计算·openclaw安装包
江上清风山间明月14 小时前
RPC failed; curl 65 OpenSSL SSL_read: OpenSSL/3.1.2错误解决方法
网络协议·rpc·ssl·failed
创意岛1 天前
品牌建设:如何低成本打造高价值品牌?
阿里云
智慧医养结合软件开源1 天前
规范新增·精准赋能,凝聚志愿力量守护老人安康
大数据·安全·百度·微信·云计算
Mangguo52081 天前
GPU利用率提升软件横向对比评测:NVIDIA Run:ai、VMware Bitfusion、博云ACE与阿里云PAI灵骏
人工智能·阿里云·云计算
翼龙云_cloud1 天前
腾讯云代理商:腾讯云如何部署DeepSeek版 Claude Code?
人工智能·云计算·腾讯云·ai智能体·deepseek-tui
sbjdhjd1 天前
02(上)| K8s 资源管理全流程:命令、配置、生产避坑
linux·运维·云原生·kubernetes·云计算·podman·kubelet
号码认证服务1 天前
企业固话号码认证能覆盖哪些手机品牌?支持华为、小米、OPPO、vivo等机型
服务器·网络·经验分享·python·华为·智能手机·云计算