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.keyTOML 格式:
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-secretKubernetes Secret 类型应为 kubernetes.io/tls。
证书配置
| 字段 | 描述 | 必填 |
|---|---|---|
certFile | 证书文件路径(PEM 格式)。 | 是 |
keyFile | 私钥文件路径(PEM 格式)。 | 是 |
stores | 引用该证书的 TLSStore。 | 否 |
secretName | Kubernetes Secret 名称。 | 否 |
适用场景
- 静态证书:在文件系统或 Secrets 中存储证书
- 多域名证书:一张证书包含多个域名(SAN)
- 多 TLS 路由:为不同的路由器使用不同的证书
- 默认证书:在没有匹配证书时使用默认证书
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。