【问题标题】:Recommended TLS Ciphers for TraefikTraefik 的推荐 TLS 密码
【发布时间】:2019-02-07 06:50:01
【问题描述】:

我正在 Traefik 中寻找 SSL/TLS 的推荐配置。我设置了minVersion = "VersionTLS12" 以避免较弱的旧版本并找到supported ciphers in Go。通过SSLLabs 的建议进行交叉检查,我得出了以下顺序(顺序很重要):

cipherSuites = [
  "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"
]

[更新] 后来与 Mozilla 的 SSL Config Generator 进行了交叉检查,删除了 SHA-1 并使用建议的顺序:

cipherSuites = [
  "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
]

这有意义吗?我想避免使用弱密码,但要包含尽可能多的强密码以实现兼容性。

【问题讨论】:

    标签: ssl encryption tls1.2 traefik


    【解决方案1】:

    您可以使用此页面生成您的 traefik 配置:https://ssl-config.mozilla.org/#server=traefik&server-version=1.7.12&config=intermediate

    # generated 2019-07-17, https://ssl-config.mozilla.org/#server=traefik&server-version=1.7.12&config=intermediate
    defaultEntryPoints = ["http", "https"]
    
    [entryPoints]
      [entryPoints.http]
      address = ":80"
        [entryPoints.http.redirect]
        entryPoint = "https"
    
      [entryPoints.https]
      address = ":443"
        [entryPoints.https.tls]
          minVersion = "VersionTLS12"
          cipherSuites = [
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
            "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
            "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
          ]
    
          [[entryPoints.https.tls.certificates]]
          certFile = "/path/to/signed_cert_plus_intermediates"
          keyFile = "/path/to/private_key"
    

    【讨论】:

      【解决方案2】:

      编辑:正如下面链接的问题所述,配置生成器已修复。

      我在研究 Traefik 的密码套件时发现了这个问题。因此,以供将来参考,以及尝试过生成器但遇到问题的人:

      我找到了 Rui Martins 提到的 Mozilla 的 ssl-config 页面。这工作正常,除了最后四个条目。

      TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
      TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
      TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
      

      Traefik 不将其识别为有效的密码套件。
      我检查了 Go 文档,发现那里也没有提到密码套件。然而,提到了相对接近的替代方案:https://godoc.org/crypto/tls#pkg-constants

      所以我将值替换如下:

      +-----------------------------------------------+----------------------------------------+
      | Old Value                                     | New Value                              |
      +-----------------------------------------------+----------------------------------------+
      | TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 | ‎TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 |
      +-----------------------------------------------+----------------------------------------+
      | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305   |
      +-----------------------------------------------+----------------------------------------+
      | TLS_DHE_RSA_WITH_AES_256_GCM_SHA384           | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384  |
      +-----------------------------------------------+----------------------------------------+
      | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256           | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256  |
      +-----------------------------------------------+----------------------------------------+
      

      注意前两个条目删除的_SHA256,后两个条目添加的EC。

      这很好用,但不是核心问题的解决方案。由于我在密码套件方面没有太多知识或经验,因此我向 Mozilla 提交了一份关于他们为 Traefik 生成 ssl-config 的错误报告。 (https://github.com/mozilla/ssl-config-generator/issues/52)

      【讨论】:

        【解决方案3】:

        看起来不错。我正在运行与您更新中相同的配置,根据 SSL 实验室测试,一切看起来都安全且兼容。

        2019 年 5 月 7 日更新:

        根据 SSL Labs 的说法,CBC 密码现在也很弱。您可以删除这些,但如果您的证书使用 RSA 签名,您将无法使用 Windows 7 在 IE 11 上查看您的网站。我使用上面的当前密码(没有 CBC)使用 ECDSA 签署了我的证书以使其正常工作IE 11 Windows 7。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-04
          • 2010-11-11
          • 2012-06-12
          • 1970-01-01
          • 2020-06-27
          相关资源
          最近更新 更多