Traefik kubernetes 多个 SSL 证书

Traefik kubernetes multiple SSL certificates

我在我的 Kubernetes 集群上使用 Traefik 作为反向代理,我正在寻找一种使用多个 SSL 证书的方法。

According to the doc,无法使用多个 TLSStore,我必须只使用 default 存储。

例如,我有两个域 app1.comapp2.com 以及两个 *.app1.com*.app2.com 的证书,Traefik 使用秘密 app1-com-sslapp2-com-ssl,是否可以将这两个证书存储在同一个默认 TLSStore 中?

这里是我的 TLSStore 定义:

apiVersion: traefik.containo.us/v1alpha1
kind: TLSStore
metadata:
  name: default
  namespace: app1

spec:
  defaultCertificate:
    secretName:  app1-com-ssl

这是我的 IngressRoute 用于 app1:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: routes
  namespace: app1

spec:
  entryPoints:
    - websecure
    - web

  routes:
  - match: Host(`test.app1.com`)
    kind: Rule
    services:
    - name: test-service
      port: 8080
  tls:
    store:
      name: default

这是我的 IngressRoute app2:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: routes
  namespace: app2

spec:
  entryPoints:
    - websecure
    - web

  routes:
  - match: Host(`test.app2.com`)
    kind: Rule
    services:
    - name: test-service
      port: 8080
  tls:
    store:
      name: default

谢谢!

好问题。 TLSStore 目前不支持多个证书,它只支持 'default certificate'。正如您已经看到的,您只能指定一个 'default' TLSStore.

Traefik 配置允许您specify multiple certificates for the 'default' TLSStore (But not the K8s CRD) I have opened a feature request 为 Traekik TLSStore CRD 添加对多个证书的支持。

✌️