Caddy 开启加密客户端问候:从最小配置到自动轮换的完整指南 📅 发布时间:2026/8/29 12:13:20 👁 浏览次数: Caddy 开启加密客户端问候从最小配置到自动轮换的完整指南【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy每次访问一个网站浏览器在 TLS 握手阶段都会把要访问的域名明文发出去——加密的只有内容没加密的是你在访问谁。同网段的人或运营商靠这一点就能列出你访问过的站点。Caddy 的加密客户端问候Encrypted Client Hello下文简称 ECH功能就是用来堵住这最后一个明文的。它解决什么域名不再裸奔ECH 的定位一句话把写着真实域名的内层 ClientHello 加密外面套一层使用通用公共域名的外层 ClientHello。打个比方就像寄信信封外面写的是一个统一的公共信箱地址具体寄给谁只有你和收件人知道。启用前网络侧能直接看到你访问的是shop.example.com还是blog.example.com启用后网络侧只看到ech.example.com这一个公共名真实域名从默认暴露变成默认隐藏这是行为上的本质差异。一行 ech 全局选项最小可运行配置Caddyfile 里启用 ECH 只需要一个全局选项{ ech ech.example.com } shop.example.com api.example.comech选项的参数就是公共域名public name。Caddy 会用它自动生成 ECH 配置并自动为该名字申请一张证书。上面这个例子已经可以跑起来但客户端要实际用上 ECH还得能找到配置这就涉及发布。JSON 配置里只有两个核心字段字段作用默认值encrypted_client_hello.configs[].public_name外层 ClientHello 使用的公共域名必填至少一个TLS 应用的全局dns发布 ECH 配置用的 DNS 服务商空不发布两个可选做法一句话带过在ech块内写dns 服务商 参数可以单独指定发布用的 DNS 服务商或者在全局选项里直接配dnsECH 会默认用它发布。注意使用哪个具体的 DNS 服务商模块都需要用包含该模块的自定义编译版本。不配任何发布渠道ECH 服务端依然工作但大多数客户端不会主动启用——它们查不到配置。换句话说最小配置是能跑发布配置才是被用上。密钥 30 天轮换、90 天清理背后机制三个要点都对应 ECH 实现源码 中的实际逻辑1. 自动生成与持久化首次启动时Caddy 生成一组 X25519 密钥对私钥、配置、元数据分别存进自己的持久化存储每份配置有独立编号。加载时若发现某份配置损坏会自动清掉重建不影响服务。2. 自动轮换后台任务每小时检查一次。密钥满 30 天就生成新的并标记旧的为已被替换被替换的密钥满 90 天后彻底删除。过渡期内新旧密钥并存客户端不会断。3. 发布到 DNS 记录发布时Caddy 把配置写入目标域名的 HTTPS 类型 DNS 记录TTL 5 分钟优先级 2并记录发布历史避免重复写。默认发布对象是 Caddy 已注册的所有 HTTPS 站点域名不需要你逐个列。Caddyfile 的ech选项解析逻辑在 Caddyfile 解析源码想了解行为细节可以从这两个文件入手。适合谁、不适合谁适用边界适合同一台服务器跑多个子域名想减少暴露的域名数量访问者普遍使用 DoH/DoT 的现代浏览器用户群不适合或有条件公共域名不归你控制、或 DNS 不指向本服务器——拿不到证书时客户端可能被逼着明文暴露真实域名隐私反而变差On-Demand TLS 场景Caddy 在握手时才知道要服务哪个域名发布 DNS 记录已经晚了这类域名必须在 JSON 的domains字段里显式列出老客户端只有支持从 DNS 读 ECH 配置的浏览器才会真正启用其余流量仍是明文 SNI源码中明确标注该功能处于实验阶段EXPERIMENTAL配置结构可能变动另外 ECH 会把相关连接策略的最低 TLS 版本自动抬到 1.3避坑与检查清单确认公共域名的 DNS 指向本服务器、证书已成功签发检查 Caddy 日志中 ECH 相关报错看日志里的发布记录成功会有 successfully published ECH configuration list失败会按域名逐条打印若某域名本身是 CNAME 记录、或尚无任何 DNS 记录Caddy 会跳过发布需手动处理公共名数量保持最少名字越多匿名集越小保护效果越弱升级 Caddy 前留意 ECH 配置字段是否随实验版本变化ECH 让真实域名成为 TLS 握手中第一件不再默认裸奔的东西密钥生成、轮换、DNS 发布全部由 Caddy 代劳你只需要管好一个公共域名和它的 DNS。【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考