acme_server
一个嵌入式的 ACME 协议 服务器处理器。此功能允许一个 Caddy 实例为任何其他兼容 ACME 的软件(包括其他 Caddy 实例)签发证书。
启用后,匹配路径 /acme/* 的请求将由 ACME 服务器处理。
客户端配置
使用 ACME 服务器默认设置时,ACME 客户端只需将其 ACME 端点配置为 https://localhost/acme/local/directory 即可。(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 尚不存在,则会创建该 CA。请参阅 PKI 应用全局选项 来配置替代的 CA。 -
lifetime(默认:
12h)是一个 持续时间,用于指定所签发证书的有效期。此值必须小于用于签名的中间证书的有效期。除非绝对必要,否则不建议更改此值。 -
resolvers 是在查找用于解决 ACME DNS 挑战的 TXT 记录时要使用的 DNS 解析器的地址。接受 网络地址,默认为 UDP 且端口 53(除非另有指定)。如果主机是 IP 地址,则会直接拨号以解析上游服务器。如果主机不是 IP 地址,则使用 Go 标准库的名称解析约定来解析这些地址。如果指定了多个解析器,则会随机选择其一。
-
challenges 设置启用的挑战类型。如果未设置或在指令中未提供值,则默认启用所有挑战类型。可接受的值为:http-01、tls-alpn-01、dns-01。
-
allow_wildcard_names 允许签发包含通配符 SAN(主题备用名称)的证书。
-
allow、deny 配置
acme_server的操作策略。策略评估遵循 Step-CA 在此处描述的标准:https://smallstep.com/docs/step-ca/policies/#policy-evaluation。-
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!"
}