拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Caddy ECH 完整指南:3 步开启加密客户端问候,隐藏网站真实域名

Caddy ECH 完整指南3 步开启加密客户端问候隐藏网站真实域名【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddyCaddy 的 ECHEncrypted Client Hello加密客户端问候功能能隐藏你正在访问的是哪个网站。为什么需要它因为每次建立 HTTPS 连接浏览器都会以明文报出要访问的域名SNI——你在公共 Wi-Fi 下刷网页ISP、公司网关和任何路上的观察者都能直接列出你在访问哪些站点。ECH 把真正的域名加密藏进 TLS 握手内部外面的人只能看到一个通用的公共门面域名。原理速览套了公共信封的加密信件打个比方普通 HTTPS 像把信塞进快递箱箱子上贴着寄往 example.com谁路过都看得清。启用 ECH 后相当于再套一层外层信封——外面写着公开的通用地址比如shared.example.com真实收件人写在里面并用密码封好。和以前的区别可以归纳为三点以前TLS 只加密信件内容不加密收件人SNI 始终明文。现在浏览器把真实域名的 ClientHelloTLS 握手第一个报文整体加密外面再包一层用公共域名伪装的 ClientHello。收益逻辑所有挂在这个公共名下的站点共享同一个匿名集合观察者分不清具体访问了哪一家公共名越少集合越大隐私越强。动手起步最简 ECH 配置ECH 目前通过 JSON 配置启用Caddyfile 暂不直接支持写在tls应用的encrypted_client_hello字段下。准备一个你能控制证书的公共名域名如shared.example.com并把它的 DNS 解析指向你的 Caddy 服务器。在 JSON 配置中加入下面内容其余保持不变{ apps: { tls: { encrypted_client_hello: { configs: [ { public_name: shared.example.com } ], publication: [ { publishers: { dns: { name: cloudflare, api_token: 你的令牌 } } } ] } } } }执行caddy reload --config config.json重新加载配置Caddy 会生成 ECH 密钥、为公共名自动申请证书并把 ECH 配置写入你各站点的 DNS HTTPS 记录。三个关键行各管一件事public_name外层信封上的通用域名Caddy 会自动为它签发证书。publication告诉 Caddy 把 ECH 配置发布到 DNS。浏览器正是靠读取这条 HTTPS 记录才知道该用什么参数加密连接。DNS 服务商若已配置在 TLS 应用的全局dns字段中publication可以整个省略Caddy 会自动用它发布。自动化与进阶上线后它自己会干嘛你只管配置剩下交给 Caddy 的后台循环核心逻辑见源码文件modules/caddytls/ech.go密钥生成与存储自动生成 X25519 密钥对私钥、配置、元数据分别存入 Caddy 持久化存储的ech/configs/id/目录下。自动轮换密钥每 30 天轮换一次轮换后旧密钥保留兼容期还在用它的客户端不受影响90 天后自动删除。自动发布服务启动时立即把 ECH 配置写入各域名的 DNS HTTPS 记录之后每小时检查一次需要轮换或补发布就补一次已发布成功的域名不会重复发布。集群同步轮换和发布操作都带存储锁多台 Caddy 实例共享同一存储时不会互相覆盖。证书联动公共名若还没有证书Caddy 会自动把它加入自动签发名单省去手工申请。强制 TLS 1.3ECH 依赖 TLS 1.3涉及 ECH 的连接策略会自动把最低 TLS 版本提到 1.3即使你配置了更低的版本。按规模怎么配个人站点一个public_name保护你的整个域名即可。值得开——配置只有几行却能防住 ISP 级别的浏览记录窥探。小团队多个域名统一挂在同一个公共名下匿名集合最大只有当域名分属不同 DNS 服务商时才需要按服务商分多条publication。多域名企业内部服务域名全部纳入保护但公共名数量控制在最少源码注释明确建议每台服务器通常只配一个跨服务商场景下为每组域名单独配一条发布规则即可。避坑与收尾这三点能避开大多数配置成功但没效果的情况不发布就没有 ECH。浏览器从 DNS 的 HTTPS 记录获取 ECH 参数不配置publication或全局 DNS 服务商时绝大多数客户端根本不会走 ECH。另外要注意Caddy 不会对 CNAME 域名、或尚无任何 DNS 记录的域名发布记录日志里会有提示。公共名必须能拿到证书。把public_name的 DNS 解析指到这台服务器Caddy 才能为它自动申请证书拿不到证书时客户端可能被迫回退到明文 SNI隐私直接漏掉。客户端也要支持。ECH 要求 TLS 1.3且浏览器需支持 ECHChrome、Firefox 等主流浏览器已支持客户端启用 DoH/DoT 时从 DNS 读取配置才更安全。该功能目前在源码中标注为实验性EXPERIMENTAL配置字段可能随版本调整。如果你的站点开始在意谁在看着我访问了什么现在就给 Caddy 加上这几行 ECH 配置把 SNI 藏进加密里——等 ECH 标准完全成熟、成为浏览器默认能力时今天配置过的站点将率先享受它的全部红利。【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门