【问题标题】:Traefik V2 get wildcard certificateTraefik V2 获取通配符证书
【发布时间】:2019-09-27 21:34:23
【问题描述】:

在关注tutorial 之后,我已经运行了基本设置

但难以从 Let's Encrypt 获取域的通配符证书。

traefik 配置:

traefik.toml: |
  ## static configuration
  [global]
    checkNewVersion = true

  [entryPoints]
    [entryPoints.web]
      address = ":80"
    [entryPoints.websecure]
      address = ":443"

  [providers]
    [providers.kubernetesCRD]
    [providers.file]
      directory = "/etc/traefik/providers/"
      watch = true

  [log]
    level = "INFO"

  [accessLog]

  [api]
    insecure = true
    dashboard = true
    debug = true

  [metrics]
    [metrics.prometheus]
      buckets = [0.1,0.3,1.2,5.0]
      addEntryPointsLabels = true
      addServicesLabels = true
      entryPoint = "web"

  [ping]
    entryPoint = "web"

  [certificatesResolvers]
    [certificatesResolvers.default]
      [certificatesResolvers.default.acme]
        email = "admin@domain.com"
        caServer = "https://acme-v02.api.letsencrypt.org/directory"
        storage = "acme.json"
        [certificatesResolvers.default.acme.dnsChallenge]
          provider = "route53"
          delayBeforeCheck = 0
          resolvers = ["1.1.1.1:53", "8.8.8.8:53"]

dynamic.toml: |
  ## dynamic configuration
  (Empty)

和路由配置:

---

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-admin
  namespace: kube-system
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`traefik.domain.ca`)
    kind: Rule
    services:
    - name: traefik
      port: 8080

---

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: whoami-notls
  namespace: kube-system
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`traefik.domain.ca`) && PathPrefix(`/notls`)
    kind: Rule
    services:
    - name: whoami
      port: 80

---

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: whoami-tls
  namespace: kube-system
spec:
  entryPoints:
    - websecure
  routes:
  - match: Host(`traefik.domain.ca`) && PathPrefix(`/tls`)
    kind: Rule
    services:
    - name: whoami
      port: 80
  tls:
    certResolver: default

我能够获得 traefik.domain.ca 的证书,但需要获得整个域 (*.domain.ca) 的通配符证书。我找不到任何直接参考配置。

我在这里缺少什么?

【问题讨论】:

    标签: traefik traefik-ingress


    【解决方案1】:

    更新tls 块有效。

    tls:
      certResolver: default
      domains:
        - main: dev.domain.ca
          sans:
            - "dev.domain.ca"
            - "*.dev.domain.ca"
    

    【讨论】:

    • 这个答案有效。但。如果您有多个具有此配置的路由器,它将无法正常工作。因此,在您的一个路由器中,设置此配置。在您的其他路由器中,只需使用tls: {}
    • @JasperKuperus 你能给我一些例子吗?
    • 假设您有多个 IngressRoute 文档并希望在所有文档中都使用 TLS。如果您将此答案中的块复制/粘贴到所有IngressRoutes,它将不起作用。对我有用的是将此答案中的代码块添加到IngressRoutes 之一以及我想要TLS 添加tls: {} 的所有其他IngressRoutes。
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    相关资源
    最近更新 更多