SSL相关属性的Tomcat连接器元素组合
我们的团队从供应商那里继承了一个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吗?有什么想法吗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更改为
<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”。