Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSL相关属性的Tomcat连接器元素组合_Tomcat_Ssl - Fatal编程技术网

SSL相关属性的Tomcat连接器元素组合

SSL相关属性的Tomcat连接器元素组合,tomcat,ssl,Tomcat,Ssl,我们的团队从供应商那里继承了一个Web应用程序。该web应用程序在Tomcat 7.0.41(目前为w/OpenJDK 1.6)上运行。我查看了Tomcat服务器xml,连接器配置如下。问题是,为什么使用https方案将SSLEnabled设置为false,并且secure=true。TC文档表示,SSLEnabled应该是“true”,通常情况下,scheme和secure设置为true。同样重要的是,TC服务器位于负载平衡器后面。这个应用程序似乎运行得很好。我应该将SSLEnabled更改为

我们的团队从供应商那里继承了一个Web应用程序。该web应用程序在Tomcat 7.0.41(目前为w/OpenJDK 1.6)上运行。我查看了Tomcat服务器xml,连接器配置如下。问题是,为什么使用https方案将SSLEnabled设置为false,并且secure=true。TC文档表示,SSLEnabled应该是“true”,通常情况下,scheme和secure设置为true。同样重要的是,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"
  />


别管它。SSL将在负载平衡器处终止,负载平衡器向此连接器发出明文HTTP。

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

在这种情况下,您需要
secure=true
scheme=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”属性,因为开发人员不会手动添加该属性


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

谢谢您的回复。可以肯定地说,只要SSLEnabled=“false”,设置scheme和安全属性就没有意义了吗?scheme的默认值为“http”,secure的默认值为“false”。