Tomcat 是否有默认密码套件列表

Does Tomcat have default cipher suite list

我已将 Tomcat 8.5 密码套件配置如下

    <Connector
      ....
      sslEnabledProtocols="TLSv1.2" 
      ciphers="
            TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
            TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
            TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
            TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"
    ... />

在使用 www.ssllabs.com 测试站点时,我在服务器支持的密码套件部分发现了奇怪的结果。名单如下:

    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384  ....   OK
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384  ....   WEAK
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA     ....   WEAK
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256  ....   OK
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256  ....   WEAK
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA     ....   WEAK

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256哪里来的,我没有在‍server.xml里面配置?!

它是 tomcat 中的任何默认密码套件列表吗?!

当您指定 ciphers 时,将不会提供额外的密码,无论所使用的加密提供程序的功能如何(例如 JSSE、OpenSSL 等)。

如果您看到正在协商一组不同的密码套件,我会检查两件事:

  1. 您的配置已被实际使用。尝试在 XML 配置文件中添加一个语法错误,看看 Tomcat 是否仍然启动。 Tomcat 如果文件格式不正确,应该拒绝启动,确认您实际上正在更改正确的配置文件。

  2. 如果您没有直接连接到 Tomcat,您可能正在与另一个网络组件协商 TLS 握手,例如终止 TLS 的反向代理。如果是这样,Tomcat 的配置不相关;客户端实际上是在与反向代理而不是 Tomcat 对话,因此就客户端而言,密码列表将有所不同。在这种情况下,您将需要重新配置反向代理。 Tomcat 中的密码套件列表仍然很重要,因为您想要使用安全的密码套件,即使 "inside" 您自己的网络也是如此。