使用 Caddy 和自动 SSL 的具有固定子域的通用域部分?
Generic domain part with fixed subdomain using Caddy and auto SSL?
我想设置一个 Caddy 服务器,其中子域是静态的,但域部分是“通配符”,例如“api.*”
根据我对 Caddy 的理解,通配符可以用于完整域的一部分(*.domain.com
匹配 bar.domain.com
但不匹配 foo.bar.domain.com
)。
此外,此配置会自动为任何指向我服务器的域以“api.
*".
此处的“*”将直接是域,而不是任何子域(它适用于 api.domain.com
,但不适用于 api.foo.domain.com
)。
这是否可以使用简单的 Caddy 命令(例如 api.* { ... }
,我尝试过但没有成功),还是需要更复杂的实现?
感谢您的帮助!
我在 Caddy 社区的帮助下找到了可行的解决方案。
代码如下:
{
on_demand_tls {
ask https://static.site.com/domain/verify
interval 2m
burst 5
}
}
static.site.com {
...
}
:443 {
tls {
on_demand
}
// Your custom config, for instance:
reverse_proxy * ...
}
漂亮的部分是通用 HTTPS 的 tls { on_demand }
部分,它将自动创建证书。但是,这可能会被任何将其 DNS 条目之一指向您的服务器的人滥用。
因此,为避免这种情况,Caddy 社区强烈建议您设置一个 on_demand_tls
来查询端点,并且仅当该端点 returns 为真时才允许创建 SSL 证书。
注意:ask
是 GET 请求,请勿遵循重定向!除了 200 状态代码之外的任何内容都将被视为失败,即使是 3xx!
ask
url 将附加 ?domain
并允许您根据您的逻辑验证该域,例如域中的自定义值,如“开始于 static.*
",并验证该域是否存在于您的数据库中(例如)。
如果您的 URL 已经包含一些查询参数,不用担心,Caddy 很聪明,可以添加它们。 (https://static.site.com/domain/verify?some=query
将变为 https://static.site.com/domain/verify?some=query&domain={domain}
。
Caddy 支持 https
ask
参数,并且 URL 也可以是外部的,完全没有问题(不需要本地主机或本地服务器配置)。
我想设置一个 Caddy 服务器,其中子域是静态的,但域部分是“通配符”,例如“api.*”
根据我对 Caddy 的理解,通配符可以用于完整域的一部分(*.domain.com
匹配 bar.domain.com
但不匹配 foo.bar.domain.com
)。
此外,此配置会自动为任何指向我服务器的域以“api.
*".
此处的“*”将直接是域,而不是任何子域(它适用于 api.domain.com
,但不适用于 api.foo.domain.com
)。
这是否可以使用简单的 Caddy 命令(例如 api.* { ... }
,我尝试过但没有成功),还是需要更复杂的实现?
感谢您的帮助!
我在 Caddy 社区的帮助下找到了可行的解决方案。
代码如下:
{
on_demand_tls {
ask https://static.site.com/domain/verify
interval 2m
burst 5
}
}
static.site.com {
...
}
:443 {
tls {
on_demand
}
// Your custom config, for instance:
reverse_proxy * ...
}
漂亮的部分是通用 HTTPS 的 tls { on_demand }
部分,它将自动创建证书。但是,这可能会被任何将其 DNS 条目之一指向您的服务器的人滥用。
因此,为避免这种情况,Caddy 社区强烈建议您设置一个 on_demand_tls
来查询端点,并且仅当该端点 returns 为真时才允许创建 SSL 证书。
注意:ask
是 GET 请求,请勿遵循重定向!除了 200 状态代码之外的任何内容都将被视为失败,即使是 3xx!
ask
url 将附加 ?domain
并允许您根据您的逻辑验证该域,例如域中的自定义值,如“开始于 static.*
",并验证该域是否存在于您的数据库中(例如)。
如果您的 URL 已经包含一些查询参数,不用担心,Caddy 很聪明,可以添加它们。 (https://static.site.com/domain/verify?some=query
将变为 https://static.site.com/domain/verify?some=query&domain={domain}
。
Caddy 支持 https
ask
参数,并且 URL 也可以是外部的,完全没有问题(不需要本地主机或本地服务器配置)。