Anduin Xue
Anduin Xue

Anduin's Tech Blog

MTLS


给Caddy上Cloudflare以清洗流量

该架构通过多层配置实现安全可靠的反向代理,核心为Caddy服务器,其配置由三部分动态拼接而成:Cloudflare IP信任策略、基础安全配置(含HSTS与日志)、各业务服务的独立配置文件。构建时通过脚本将分散在多个目录中的`.conf`文件统一收集至指定目录,并与自动生成的Cloudflare IP列表和基础配置合并为最终的Caddyfile,确保配置可维护性与灵活性。Docker镜像构建过程中生成临时自签名证书用于启动验证,实际运行时通过Docker Volume挂载真实Cloudflare证书(位于`/swarm-vol/sites-data/caddy/certs/`),使Caddy能够使用合法证书响应HTTPS请求,同时通过`client_auth`机制强制验证Cloudflare的mTLS身份,仅接受来自Cloudflare的请求。Caddy配置中引入`cloudflare_trust`策略,确保仅将Cloudflare代理IP视为可信来源,从而正确还原客户端真实IP。整个系统部署于Docker Swarm,通过host模式端口映射暴露80/443端口,由FRP处理外部流量接入,内部服务通过`reverse_proxy`转发至对应后端容器,所有通信均保持端到端加密,实现安全、高效、可扩展的统一入口管理。--Qwen3

Reverse Proxy ACME Caddy Docker Cloudflare MTLS

  • 1