Skip to content

Traefik TLS 选项文档

TLS 选项

TLS 选项允许你配置 TLS 连接的一些参数。

default TLS 选项

default 选项是特殊的。当 TLS 路由器中未指定 TLS 选项时,将使用 default 选项。

显式指定 default 选项时,确保不要指定 Provider 命名空间,因为 default 选项没有命名空间。

相反,对于跨 Provider 引用(例如从 Docker label 引用文件 Provider),必须指定 Provider 命名空间,例如:traefik.http.routers.myrouter.tls.options=myoptions@file

Providers

基于 label 或 tag 的 Provider 不支持 TLS 选项。但是,使用 KV Provider 时可以定义它们。

配置示例

最小 TLS 版本

yaml
# 动态配置
tls:
  options:
    default:
      minVersion: VersionTLS12

    mintls13:
      minVersion: VersionTLS13
toml
# 动态配置
[tls.options]

  [tls.options.default]
    minVersion = "VersionTLS12"

  [tls.options.mintls13]
    minVersion = "VersionTLS13"

配置多个选项

yaml
tls:
  options:
    default:
      minVersion: VersionTLS12
      maxVersion: VersionTLS13
      cipherSuites:
        - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
      curvePreferences:
        - CurveP521
        - CurveP384
      alpnProtocols:
        - h2
        - http/1.1

SNIStrict 与默认证书

default 选项可以设置 sniStrict 来禁止不带 SNI 的连接。

配置选项

字段描述默认值
minVersion最小 TLS 版本。VersionTLS10
maxVersion最大 TLS 版本。VersionTLS13
cipherSuites允许的 TLS 密码套件列表。-
curvePreferences椭圆曲线偏好列表。-
alpnProtocols允许的 ALPN 协议列表。h2, http/1.1
sniStrict启用 SNI 严格模式(不接受没有 SNI 的连接)。false
clientAuth启用 mTLS 客户端认证。-
clientAuth.clientAuthTypeNoClientCertRequestClientCertRequireAnyClientCertVerifyClientCertIfGivenRequireAndVerifyClientCert-
clientAuth.caFiles用于客户端认证的 CA 证书。-

适用场景

  • 安全合规:满足 PCI DSS、HIPAA 等合规性要求
  • 启用 mTLS:双向 TLS 认证
  • TLS 强化:禁用老旧的 TLS 版本和弱密码
  • ALPN 配置:优化协议选择

在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布