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

三步开启 Caddy ECH:把域名藏在线路明文之前

三步开启 Caddy ECH把域名藏在线路明文之前【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy你的网站早就上了 HTTPS但握手时还有一处明文没藏住SNI。同网段的人抓个包就知道你要连哪个域名。Caddy ECHEncrypted Client Hello就是来补这个洞的——它把真实的 ClientHello 整个加密外面只露出一层公开的壳域名。原理白话版把信装进一个不透明信封以前寄信地址直接写在信封外面谁都能读。ECH 做的事是把真实地址折进内层信封加密外层只写一个大家通用的共同地址。邮路你的网络只按外地址投递只有收件人你的服务器能拆开内层信封看到真正的域名。这个外地址叫 public name。一个 public name 可以罩住你名下所有站点共享它的站点越多旁观者越难猜出你在访问谁。服务器端用来解密的 X25519 密钥对由 Caddy 自动生成、落盘存储、定时轮换全程不用你手动碰密钥。三步开启 Caddy ECH配一行剩下的交给 DNS挑一个域名当 public name。硬性要求是 Caddy 能给它签发证书比如 shared.example.com且建议专用于 ECH不承载真实业务。在 TLS 配置里加入最精简的两段encrypted_client_hello: { configs: [{ public_name: shared.example.com }], publication: [{ publishers: { dns: { name: your-dns-provider } } }] }等 Caddy 自动发布。启动后它把 ECH 参数写进被保护域名的 DNS HTTPSSVCB记录浏览器连过来时自行读取。前提只有一个你的 DNS 服务商支持 HTTPS 记录类型。发布不是一次性的Caddy 起一个后台任务先立即发布之后每小时检查一次需要时轮换 ECH 密钥并重新发布。Caddy ECH 关键参数与默认值一览字段默认值作用public_name必填无默认外层 ClientHello 用的域名Caddy 会为它自动申请证书多数部署一个就够publication[].configs全部 configs多个 public name 时指定要发布哪些publication[].domains全部服务器名指定保护哪些内层域名用按需 TLS 的域名必须在这里显式列出否则首次连接会暴露 SNIpublishers继承全局dns提供者发布通道目前为 DNS 发布者缺省 DNS 提供者时整段发布是空操作密钥轮换30 天轮换、90 天清理源码写死不可配轮换期间新旧密钥共存客户端无感最低 TLS 版本自动抬到 1.3ECH 依赖 TLS 1.3你配得再低也会被强制上调开启 Caddy ECH 后的踩坑与验证清单 ✅被保护域名不是 CNAME 记录。Caddy 遇到 CNAME 会跳过发布且不算错误结果就是记录一直不存在只有日志里一条 warn。域名下已有其他 DNS 记录A/AAAA。全新空域名会被主动跳过防止 HTTPS 记录把通配符解析顶掉。客户端走 DoH 或 DoT。普通明文 DNS 下 HTTPS 记录可被中间人篡改主流浏览器会忽略不可信来源的参数。DNS 服务商支持写入 SVCB/HTTPS 记录类型且 API 有写权限。上线后在公网 dig 该域名的 HTTPS 记录确认ech参数存在查不到就优先查 DNS 提供者和上面两条记录问题。回到开头那个场景配置生效后旁观者再抓包只能看到你连的是 shared.example.com真实域名自始至终没出现在明文里。下一步就一件给一个域名按上面三步配上dig 一次确认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 小时内出具建站方案 · 河南本地可上门