Caddy2 Caddyfile配置文件-全局配置块

1. 创建默认文件

在 caddy 命令所在目录,创建文件:Caddyfile(默认文件必须是这个名),内容如下:

{
	log {
		output file C:/caddy_2.11.4_windows_amd64/logs/caddy.error.log {
			roll_size 20mb
			roll_keep 5
		}
		level INFO
	}
	email 123456@qq.com
	acme_ca https://acme-v02.api.letsencrypt.org/directory
}

解释:acme_ca

acme_ca https://acme-v02.api.letsencrypt.org/directory

指定使用 Let's Encrypt 签证书,只要邮箱就能注册账户,门槛更低

背景

Caddy 2.6 之后,默认 CA 换成了 ZeroSSL(不是 Let's Encrypt)

Caddy 默认同时支持 Let's Encrypt 和 ZeroSSL 两家 CA,会自动尝试其中一家,失败后可能 fallback 到另一家。 但这里有个坑:

  1. ZeroSSL 申请证书需要 EAB 凭证(External Account Binding),也就是要先到 ZeroSSL 官网注册、生成一对 Key ID / MAC Key,再配置到 Caddy 里,否则申请会直接失败。
  2. Let's Encrypt 不需要 EAB,只要邮箱就能注册账户,门槛更低。

所以不加 acme_ca 时,Caddy 可能先尝试 ZeroSSL,发现没配 EAB 就失败,然后再试 Let's Encrypt——这中间多绕了一圈,日志里也会出现 ZeroSSL 的报错,干扰排查。
加上 acme_ca https://acme-v02.api.letsencrypt.org/directory 就是直接跳过 ZeroSSL,直奔 Let's Encrypt,路径最短,排查也最清晰。

重要提醒:调试期先用 staging

Let's Encrypt 正式接口有限频(同组域名每周最多 50 张证书),反复失败会触发 rateLimited,锁 7 天。
所以排查证书问题时,建议先指向 staging(测试地址),随便失败都不扣额度:

acme_ca https://acme-staging-v02.api.letsencrypt.org/directory

解释:全局log配置

log {
		output file C:/devtools/caddy_2.11.4_windows_amd64/logs/caddy.error.log {
			roll_size 20mb
			roll_keep 5
		}
		level INFO
	}
  1. 企业生产环境一般不会保留控制台输出,建议只写文件。​请求量大时刷屏,控制台输出拖慢终端​,远程桌面/SSH 卡顿甚至卡死
  2. 日志文件写成绝对路径:如果是 注册成服务启动 的,工作目录很可能 不是 C:\caddy_2.11.4_windows_amd64,结果日志就跑到别的地方去了,你还以为没生成。

解释:邮箱配置

全局 email 123456@qq.com 是给整个 Caddy 实例设置一个默认 ACME 账户邮箱;站点块里的 tls 123456@qq.com 是给这个站点单独指定邮箱

两者都写,站点自己的 tls 邮箱优先 全局兜底,站点覆盖

2. 校验默认配置文件

提示:上面写的是正确的,这步其实没用,只是模拟正常配置流程

注意:默认配置文件名必须是 Caddyfile

caddy validate

没有问题就继续下一步

3. 格式化配置文件

提示:格式化配置文件的缩进、空格等,也就是说,不执行这步,也可行

1. 预览格式化效果

不会修改文件,输出到控制台

caddy fmt Caddyfile

2. 直接格式化默认文件

注意:默认配置文件名必须是 Caddyfile

caddy fmt --overwrite

4. 重新加载默认配置文件

可以不重启 caddy 服务器,重新加载配置文件

caddy reload