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

如何配置Traefik为所有来访域名自动生成Let's Encrypt证书

实现Traefik自动为所有新域名生成Let's Encrypt证书

基于你提供的现有配置,要实现为所有访问容器的新域名自动生成证书,只需完成以下几个关键配置调整和验证步骤:

1. 确保HTTP挑战入口点与跳转正常工作

你的ACME配置已启用httpChallenge并指定entryPoint: web,需先保证Traefik的静态配置中正确开启web(80端口)和websecure(443端口)入口点,同时配置全局HTTP到HTTPS的跳转,确保挑战请求能被正确处理:

# Traefik静态配置(如traefik.yml)
entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"

http:
  middlewares:
    redirect-to-https:
      redirectScheme:
        scheme: https
  routers:
    http-catchall:
      rule: HostRegexp(`{host:.+}`)
      entryPoints:
        - web
      middlewares:
        - redirect-to-https
      priority: 1
  • 这个http-catchall路由的priority: 1低于你容器路由的priority: 2,确保所有HTTP请求先被跳转到HTTPS,再匹配容器的HTTPS路由。

2. 确认容器路由的TLS配置正确性

你当前的容器标签已包含自动证书生成的关键配置,只需验证以下几点:

  • 确保traefik.http.routers.xxx.tls.certresolver=production正确关联到你的ACME resolver
  • 容器路由规则HostRegexp(\{host:.+}`)语法正确(Docker标签中若使用双引号,内部反引号无需转义,可简化为HostRegexp({host:.+})`)
  • 保证Traefik容器对/etc/traefik/certs/acme.json文件有读写权限,执行命令设置权限:
    chmod 600 /etc/traefik/certs/acme.json
    

3. 验证自动证书生成流程

完成配置后,按以下步骤验证:

  • 启动Traefik和目标容器,确保容器正常运行
  • 将新域名的DNS解析指向Traefik所在服务器的公网IP
  • 用浏览器或curl访问该域名的HTTPS地址,查看是否能正常获取证书(浏览器地址栏显示安全锁)
  • 查看Traefik日志,确认存在ACME证书请求和颁发的相关日志
  • 检查acme.json文件,会新增对应域名的证书条目

注意事项

  • 测试阶段建议切换到Let's Encrypt的staging服务器(修改caServer为https://acme-staging-v02.api.letsencrypt.org/directory),避免触发正式环境的速率限制(单域名每周最多5次证书请求)
  • 若需要泛域名证书,需改用DNS挑战(HTTP挑战仅支持单个域名),需额外配置对应DNS服务商的API密钥

内容的提问来源于stack exchange,提问作者Michal Rendek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:57:09