Skip to content

Traefik TLS 证书文档

TLS 证书

当路由器需要处理 HTTPS 流量时,应在其定义中指定 tls 字段。

证书定义

自动化

参见 Let's Encrypt 页面。

用户自定义

要添加/删除 TLS 证书(即使 Traefik 已经在运行),其定义可以添加到动态配置[[tls.certificates]] 部分。

YAML 格式:

yaml
tls:
  certificates:
    - certFile: /path/to/domain.cert
      keyFile: /path/to/domain.key
    - certFile: /path/to/other-domain.cert
      keyFile: /path/to/other-domain.key

TOML 格式:

toml
[[tls.certificates]]
  certFile = "/path/to/domain.cert"
  keyFile = "/path/to/domain.key"

[[tls.certificates]]
  certFile = "/path/to/other-domain.cert"
  keyFile = "/path/to/other-domain.key"

默认证书

如果不希望每个路由器都配置 TLS 证书,Traefik 会自动生成一个默认证书(仅在第一次启动时生成)。 该默认证书用于在请求服务器名不匹配任何定义的证书时。

要定义默认证书,需要在入口点上设置 tls.defaultCertificate

yaml
entryPoints:
  websecure:
    address: ":443"
    http:
      tls:
        defaultCertificate:
          certFile: /path/to/cert.pem
          keyFile: /path/to/key.pem

通过 Secret 引用证书

yaml
tls:
  certificates:
    - secretName: my-tls-secret

Kubernetes Secret 类型应为 kubernetes.io/tls

证书配置

字段描述必填
certFile证书文件路径(PEM 格式)。
keyFile私钥文件路径(PEM 格式)。
stores引用该证书的 TLSStore。
secretNameKubernetes Secret 名称。

适用场景

  • 静态证书:在文件系统或 Secrets 中存储证书
  • 多域名证书:一张证书包含多个域名(SAN)
  • 多 TLS 路由:为不同的路由器使用不同的证书
  • 默认证书:在没有匹配证书时使用默认证书

在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。

基于 MIT 协议发布