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

Traefik配置示例:混合使用Let's Encrypt与已购证书

我来帮你搞定这个配置——Traefik完全支持混合使用手动购买的证书和Let's Encrypt自动签发的证书,核心是通过**证书解析器(certResolver)**来区分不同主机的证书来源。下面是具体的配置方案和示例:

核心配置思路

Traefik允许你同时配置两种证书来源:

  • 全局手动证书:在entryPoints.https.tls下配置,作为默认选项,供没有指定证书解析器的主机使用
  • ACME自动证书:通过[certificatesResolvers]段配置证书解析器,然后在特定前端/路由规则里指定使用这个解析器,让对应主机自动申请Let's Encrypt证书
修改后的traefik.toml示例
defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.http]
    address = ":80"
    # 可选:把HTTP请求重定向到HTTPS,ACME的http-01挑战会自动被Traefik拦截处理,不会影响
    [entryPoints.http.redirect]
      entryPoint = "https"

  [entryPoints.https]
    address = ":443"
    [entryPoints.https.tls]
      # 这里放你已购买的证书,作为默认证书(给不需要Let's Encrypt的主机用)
      [[entryPoints.https.tls.certificates]]
        certFile = "/etc/traefik/certs/your-purchased-cert.crt"
        keyFile = "/etc/traefik/certs/your-purchased-key.key"

# 配置ACME(Let's Encrypt)证书解析器
[certificatesResolvers.myacme.acme]
  # 存储ACME账户和证书的文件路径
  storage = "/etc/traefik/acme.json"
  # 使用http-01挑战(需要80端口对外开放)
  [certificatesResolvers.myacme.acme.httpChallenge]
    entryPoint = "http"
  # 可选:如果用tls-alpn-01挑战,替换成下面的配置
  # [certificatesResolvers.myacme.acme.tlsAlpnChallenge]
  # 配置Let's Encrypt的邮箱,用于证书过期提醒
  email = "your-email@example.com"
  # 测试环境用staging,避免触发Let's Encrypt的速率限制
  # caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"
为特定主机启用Let's Encrypt

接下来,你需要在需要自动证书的前端/路由规则里指定使用myacme这个证书解析器,不同配置方式的示例如下:

1. 文件配置的前端(静态配置)

如果是用Traefik的文件配置前端,在对应的[frontends]块里添加TLS配置:

[backends]
  [backends.mybackend]
    [backends.mybackend.servers.server1]
      url = "http://localhost:8080"

[frontends]
  [frontends.myfrontend]
    backend = "mybackend"
    [frontends.myfrontend.routes.test_1]
      rule = "Host:my-le-host.example.com"
    # 指定使用ACME证书解析器
    [frontends.myfrontend.tls]
      certResolver = "myacme"

2. Docker标签配置(动态配置)

如果是用Docker部署服务,给需要Let's Encrypt的容器添加以下标签:

# 基础路由标签
traefik.http.routers.myrouter.rule=Host(`my-le-host.example.com`)
traefik.http.routers.myrouter.entrypoints=https
# 指定使用ACME证书解析器
traefik.http.routers.myrouter.tls.certresolver=myacme
关键注意事项
  • acme.json文件需要设置正确的权限:chmod 600 /etc/traefik/acme.json,否则Traefik无法写入
  • 如果生产环境使用,记得注释掉caServer的测试地址,改用默认的生产环境地址
  • 已购买证书的主机不需要添加certResolver配置,Traefik会自动使用entryPoints.https.tls里的默认证书

内容的提问来源于stack exchange,提问作者Jim Frenette

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:40:14