
Caddy ECH 完整指南5分钟启用SNI域名隐私保护【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy你打开网站时页面内容被HTTPS加密但域名SNIServer Name Indication仍以明文发往网络途经的每个节点都能看到你访问了哪些站点。Caddy 的ECHEncrypted Client Hello功能把整个握手也加密本文带你从零到可用。和传统HTTPS的区别SNI明文泄露差在哪传统HTTPS只加密握手之后的内容握手阶段域名是喊出去的。ECH恰好补上这块真正的ClientHello被整体加密网络上只能看到一个通用的外层域名。对比项传统HTTPSCaddy ECH域名SNI明文任意中间节点可见加密只见外层域名握手保护范围握手后内容整个ClientHello额外配置无一条全局选项 DNS提供方快速上手5分钟启用ECH的最少配置⚡ 完整配置只有几行前提是你的Caddy带有所需的dns.providers模块caddy list-modules可查官方版本已含Cloudflare等常见提供方。第1步准备一个公共名public_name比如ech.example.com把它的A记录指向本服务器——Caddy会为它自动申请证书。第2步在Caddyfile写全局选项并声明要保护的站点{ ech ech.example.com { dns cloudflare { api_token {env.CF_TOKEN} } } } example.com第3步caddy validate通过后重启然后验证$ dig short HTTPS example.com 2 . echAAABAAAB...看到ech参数说明配置已成功写入DNS浏览器下次连接就会读取。背后原理套娃信封与密钥轮换机制 可以想象成套娃信封真实域名写在内层信封真实ClientHello上外层信封只盖公共名的邮戳。快递员网络观察者只能看到外层邮戳内层内容必须用密钥才能拆开。关键组件见 modules/caddytls/ech.go只需认识三个ECH含Configs确定外层域名Caddy自动生成X25519密钥对并存入持久化存储多实例靠存储锁同步ECHDNSPublisher把ECH配置列表写入域名的HTTPS DNS记录浏览器从这里取钥匙密钥轮换每30天自动换一批新密钥超过90天的旧密钥自动删除全程无人工操作。另有一个隐含行为ECH要求TLS 1.3启用后Caddy会自动把策略的最低TLS版本提上去。落地清单个人与企业部署要点个人使用所有站点共用一个公共名外层域名越少匿名集外观相同的一组域名越大保护越强浏览器开启DoH/DoT否则读不到或读到的ECH配置不可信用握手检测工具确认SNI已变成外层域名企业部署全部业务域名收敛到一个公共名避免匿名集被拆散确认DNS提供方账号有HTTPS记录的写权限Caddy依赖它自动发布定期查看ech日志确认published与轮换记录正常受保护域名保持A/AAAA记录不要用CNAME避坑指南3个高频问题与成因问题1配置了但ECH不生效SNI仍是明文症状选项没报错但抓包仍见真实域名。 原因浏览器靠DNS记录发现ECH配置没开DoH就读不到或没配DNS提供方Caddy根本没发布记录。 解法开启DoH/DoT查日志里是否有published ECH configuration list没有就回头检查提供方配置。问题2日志出现domain has CNAME record症状警告domain has CNAME record, so unable to publish ECH data。 原因CNAME记录与其他记录互斥该域名放不下HTTPS记录。 解法把域名改成A/AAAA记录或改用无CNAME的子域承载ECH。问题3新域名的ECH配置一直没发布症状日志提示does not have any existing records, so skipping publication。 原因Caddy的防御设计——给没有任何已有记录的域名发布记录会使该域名的通配记录失效直接打挂解析。 解法先给域名配好有效的A/AAAA记录再启用ECH。一句话收尾ECH让Caddy的自动HTTPS从保护内容延伸到了保护域名配置只有几行、密钥自动轮换。随着ECH标准在浏览器与网络侧的普及这种域名级的隐私保护会成为每个站点的默认配置。【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考