Caddy 2.11 更新:ECH 密钥自动轮换、SIGUSR1 重载配置、反向代理 Host 改写
仓库:https://github.com/caddyserver/caddy
Releases:https://github.com/caddyserver/caddy/releases
2.11.1 于 2026-02-23 发布,之后的 2.11.2 / 2.11.3 / 2.11.4 均为补丁版本。以下按功能变化梳理,安全修复只做一句概括。
TLS:ECH 密钥自动轮换
Encrypted ClientHello(ECH)的密钥现在会自动轮换,不需要手动更新密钥再重载。
日志:time-rolling 与 timberjack
- 日志新增
time-rolling选项,日志文件可按时间滚动,不再只有大小触发。 - 底层日志库从 lumberjack 换成 timberjack。
配置重载:SIGUSR1 可用
如果当前配置最初是由命令行从文件加载的,并且此后没有被 API 修改过,那么 SIGUSR1 现在可以触发配置重新加载。这条限制意味着经 Admin API 改过的运行态不会被 SIGUSR1 覆盖。
反向代理:HTTPS 上游自动改写 Host
当上游是 HTTPS 时,Caddy 会自动把 Host 头改写为上游地址(#7454)。之前依赖原始 Host 透传到上游的行为会因此改变。
log_append 可记录请求体与响应体
log_append 现在支持记录请求体和响应体,调试上游交互时不用再额外挂抓包或中间层。
服务器选项:keepalive_idle 与 keepalive_count
新增两个服务器级选项:
keepalive_idlekeepalive_count
新增 trusted_proxies_unix
trusted_proxies_unix 用于信任来自 unix socket 的 X-Forwarded-* 头。此前这类来源在代理信任链上没有对应配置项。
监听器:命名 socket activation
监听器支持命名 socket activation,systemd 之类的 socket 激活场景可以按名字对应到具体 listener。
Basic Auth 支持 Argon2id
Basic Auth 的密码哈希新增 Argon2id 支持,可以和原有的哈希方案并存配置。
可自定义 Server 头
Server 响应头可以自定义(#7338)。
OpenTelemetry 与日志 handler
- span exporter 切换到 autoexport。
- 新增模块级自定义 slog handler。
社区流程:AI/LLM 协助披露
贡献流程要求披露 AI/LLM 协助(Assistance Disclosures)。
安全修复
2.11.1 起包含一批安全修复,例如 FastCGI 传输中 Unicode case-folding 长度膨胀导致 SCRIPT_NAME/PATH_INFO 混淆(CVE-2026-27590)、Host 匹配器在 host 列表超过 100 条时变成大小写敏感、Path 匹配器对转义序列跳过大小写归一化、TLS 客户端认证在 CA 文件缺失或损坏时静默 fail-open(CVE-2026-27586)等;官方提示其中部分补丁可能对依赖原有 buggy 行为的应用造成破坏性影响。
插件维护者注意
不要看到 Dependabot 提的 PR 就跟着升级 go.mod 里的 Caddy 依赖,除非插件用到的导出 API 确实发生了变化。