【问题标题】:Tomcat connector element combinations for SSL related propertiesSSL 相关属性的 Tomcat 连接器元素组合
【发布时间】:2016-02-24 19:02:06
【问题描述】:

我们的团队从供应商那里继承了一个 Web 应用程序。 Web 应用程序在 Tomcat 7.0.41(目前使用 OpenJDK 1.6)上运行。我查看了 Tomcat 服务器 xml,连接器配置如下。问题是为什么 SSLEnabled 使用方案 https 和 secure=true 设置为 false。 TC 文档说 SSLEnabled 应该是“真”,通常使用方案和安全设置。此外(重要)TC 服务器位于负载均衡器后面。该应用程序似乎运行良好。我应该将 SSLEnabled 更改为 true 吗?有什么想法吗?

<Connector port="8443"
  protocol="HTTP/1.1"
  connectionTimeout="3000"
  redirectPort="443"
  SSLEnabled="false"
  scheme="https"
  secure="true" 
  useBodyEncodingForURI="true"
  enableLookups="false"
  maxThreads="400" 
  maxKeepAliveRequests="100"
  acceptorThreadCount="4"
  acceptCount="200"
  proxyPort="443"
  />

【问题讨论】:

    标签: tomcat ssl


    【解决方案1】:

    如果 tomcat 位于提供 SSL 到明文转换的负载均衡器后面,那么配置是正确的。您不希望或不需要在 tomcat 上使用SSLEnabled,除非您需要与 tomcat 的安全直接连接(绕过负载均衡器)(例如管理)

    在这种情况下,您需要 secure=truescheme=https。 如果您的 tomcat 服务器应用程序向客户端发送重定向而没有以下方案:

    response.sendRedirect(response.encodeRedirectURL(contextPath + "/rareurl") );
    

    如果您不指定scheme=https,tomcat 服务器将在前面添加 http。

    将安全客户端重定向到不安全的 URL,通常会导致在没有客户端安全登录会话 cookie 的情况下向 http 发出下一个客户端请求。在这种情况下,您最终可能会创建一个不必要的新会话,并可能在您的客户下一次请求时将其注销。

    如果接收重定向的客户端不是真正的 http 客户端,它可能不会注意到从安全 https 切换到不安全 http。在这种情况下,他们可能会以明文形式广播他们的会话 cookie,从而使坏人很容易抓住登录会话。

    如果您没有secure=true,那么在开发人员没有手动添加的情况下,tomcat 添加到响应中的任何 cookie 都不会“自动”添加 cookie "Secure" 属性添加它。

    此外,如果服务器被编码为基于安全属性将 http 重定向到 https,那么当它查询请求以查看请求是否安全时,如果您没有 secure=true,它会认为它是不安全的。如果第三方 jar 查询连接(例如 Adob​​e Flash Gateway)也可能导致问题

    【讨论】:

      【解决方案2】:

      离开它。 SSL 将在负载均衡器处终止,该负载均衡器向此连接器发送明文 HTTP。

      【讨论】:

      • 感谢您的回复。可以肯定地说,只要 SSLEnabled="false" 那么设置方案和安全属性就没有意义了吗?方案的默认值为“http”,安全的默认值为“false”。
      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多