You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Caddy代理特定域名模式?解决证书适配错误

解决Caddy中前缀通配域名转发及证书错误问题

错误原因

直接使用assets.*作为Caddy站点块的域名会触发证书错误,因为ACME证书颁发机构不支持前缀通配格式的域名(仅支持后缀通配,如*.example.com),Caddy无法为这类格式的域名申请合法SSL证书。

可行配置方案

方案1:基于主机头匹配的全局转发(适配任意后缀的前缀域名)

使用*作为全局站点块,通过匹配请求的主机头筛选目标域名,再转发到后端。适合需要覆盖不同后缀的assets.*/files.*类域名场景。

* {
    # 精准匹配符合前缀规则的主机名
    @targetDomains host assets.*, files.*, assets-cdn.*, files-cdn.*
    
    # 仅将匹配到的请求转发至后端
    reverse_proxy @targetDomains 127.0.0.1:8080

    # 若仅需HTTP服务,禁用自动HTTPS避免证书问题
    # auto_https off
}

注意:如果需要为这些域名启用HTTPS,需确保每个域名都正确解析到你的Caddy服务器,Caddy会自动为每个域名单独申请证书(依赖HTTP-01或DNS-01挑战验证)。

方案2:统一后缀的泛域名配置(推荐,支持HTTPS泛证书)

如果所有目标域名都属于同一主域名后缀(如yourdomain.com),可使用后缀通配符配置,配合DNS-01挑战申请泛域名证书,既解决证书问题又简化配置。

*.yourdomain.com {
    # 筛选指定前缀的子域名
    @targetSubdomains host assets.yourdomain.com, files.yourdomain.com, assets-cdn.yourdomain.com, files-cdn.yourdomain.com
    
    reverse_proxy @targetSubdomains 127.0.0.1:8080

    # 配置DNS服务商插件完成泛域名证书申请(替换为你的DNS服务商)
    tls {
        dns cloudflare
        # 需在环境变量中配置对应的API密钥,如 CLOUDFLARE_API_TOKEN
    }
}

核心优势:仅需一张泛域名证书即可覆盖所有子域名,减少证书管理开销,同时精准转发目标流量,避免不必要的请求进入后端。

流量优化建议

  • 确保主机头匹配规则严格对应需求,避免包含无关域名,减少无效请求的转发。
  • 若不需要HTTPS,直接启用auto_https off,避免Caddy因证书申请失败导致的配置错误,同时减少SSL握手的流量开销。

内容的提问来源于stack exchange,提问作者Brahim Sliti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 15:25:05