Traefik + k8s + Let's Encrypt 通配符 SSL + Cloudflare 问题

Traefik + k8s + Let's Encrypt 通配符 SSL + Cloudflare 问题

我正在尝试使用通配符 SSL 设置反向代理特拉菲克,并针对 Cloudflare 区域发起 DNS 挑战。

我在 k8s 中有这个配置:

kind: ConfigMap
apiVersion: v1
metadata:
  name: traefik-https
  namespace: kube-system
data:
  traefik.toml: |
    # traefik.toml
    defaultEntryPoints = ["http","https"]
    [entryPoints]
      [entryPoints.http]
      address = ":80"
      [entryPoints.http.redirect]
      entryPoint = "https"
      [entryPoints.https]
      address = ":443"
      [entryPoints.https.tls]
    [acme]
    email = "[email protected]"
    storage = "/etc/traefik/acme.json"
    entryPoint = "https"
    caServer = "https://acme-v02.api.letsencrypt.org/directory"
    [[acme.domains]]
    main = "*.notmyrealsite.com"
    sans = ["notmyrealsite.com"]
    [acme.dnsChallenge]
    provider = "cloudflare"

我在上游容器中传递了正确变量CLOUDFLARE_API_KEYCLOUDFLARE_EMAIL环境变量,但是在控制台中看到了这个错误:

time="2018-06-13T09:47:39Z" level=error msg="无法获取域 \"*.notmyrealsite.com,notmyrealsite.com\" 的 ACME 证书:无法获取证书:acme:错误 -> 一个或多个域有问题:\n[notmyrealsite.com] acme:错误 403 - urn:ietf:params:acme:error:unauthorized - 在 _acme-challenge.notmyrealsite.com\n 上发现错误的 TXT 记录 \"HREckyrZXY7uCVLaUkoYzadxkHbwfFavNWS_v14yMzk\"

我不确定这是否意味着 CF 登录成功的并且已更新(但只是使用了错误的 TXT 记录),或者这是否是它期望看到的 - 但什么都没有。

查看 CF 中的 DNS 条目,根本没有 TXT 记录。

(我只使用了免费的 CF 计划,因此我没有获得任何原始日志来查看针对 DNS 进行了哪些尝试)

什么原因可能导致 TXT 不匹配?

答案1

更多的是权宜之计而不是解决方案:

代替:

[[acme.domains]]
  main = "*.example.org"
  sans = ["example.org"]

使用:

[[acme.domains]]
  main = "*.example.org"

[[acme.domains]]
  main = "example.org"

相关内容