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.clientAuthTypeNoClientCert、RequestClientCert、RequireAnyClientCert、VerifyClientCertIfGiven、RequireAndVerifyClientCert。-
clientAuth.caFiles用于客户端认证的 CA 证书。-

适用场景 ​

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

在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布