v2中文文档
项目

acme_server

一个嵌入式ACME协议服务器处理程序。这允许一个Caddy实例为任何其他兼容ACME的软件(包括其他Caddy实例)签发证书。

启用后,匹配路径/acme/*的请求将由ACME服务器处理。

客户端配置

使用ACME服务器的默认值时,ACME客户端只需配置为使用https://localhost/acme/local/directory作为它们的ACME端点。(local是Caddy默认CA的ID。)

语法

acme_server [<matcher>] {
	ca         <id>
	lifetime   <duration>
	resolvers  <resolvers...>
	challenges <challenges...>
	allow_wildcard_names
	allow {
		domains <domains...>
		ip_ranges <addresses...>
	}
	deny {
		domains <domains...>
		ip_ranges <addresses...>
	}
}
  • ca 指定用于签署证书的证书颁发机构ID。默认值是local,也就是Caddy的默认CA,用于本地使用的自签名证书,这在开发环境中最常见。若用于更广泛的场景,建议指定不同的CA以避免混淆。如果给定ID的CA尚不存在,它将被创建。参见PKI应用全局选项来配置其他CA。

  • lifetime(默认:12h)是一个持续时间,指定已签发证书的有效期。该值必须小于用于签名的中间证书的有效期。除非绝对必要,否则不建议更改。

  • resolvers 是用于查找TXT记录以完成ACME DNS质询的DNS解析器地址。接受网络地址,未指定时默认使用UDP和53端口。如果主机是IP地址,将直接拨号到该地址解析上游服务器。如果主机不是IP地址,则使用Go标准库的名称解析约定解析地址。如果指定了多个解析器,将随机选择一个。

  • challenges 设置启用的质询类型。如果未设置,或该指令未带值使用,则启用所有质询类型。可接受的值为:http-01tls-alpn-01dns-01

  • allow_wildcard_names 启用签发带有通配符SAN(Subject Alternative Name)的证书。

  • allowdeny 配置acme_server的运行策略。策略评估遵循Step-CA 这里描述的规则。

  • domains 根据策略评估规则设置允许或拒绝的主体域名。

  • ip_ranges 根据策略评估规则设置允许或拒绝的主体IP范围。

示例

在域名acme.example.com上提供ID为home的ACME服务器,通过pki全局选项自定义CA,并使用internal签发者签发自己的证书:

{
	pki {
		ca home {
			name "My Home CA"
		}
	}
}

acme.example.com {
	tls {
		issuer internal {
			ca home
		}
	}
	acme_server {
		ca home
	}
}

如果你有另一台Caddy服务器,它可以使用上面的ACME服务器来签发自己的证书:

{
	acme_ca https://acme.example.com/acme/home/directory
	acme_ca_root /path/to/home_ca_root.crt
}

example.com {
	respond "Hello, world!"
}