我在tomcat中部署了一个Web应用程序。除了索引页面和其他一些页面外,应用程序中的几乎所有页面都需要HTTPS。当我访问任何需要HTTPS的页面时,浏览器始终使用HTTPS。当我访问不需要HTTPS的页面时,浏览器有时会使用HTTP,有时使用HTTPS,这主要取决于原点。 我的问题是,如果我可以强制浏览器对那些不需要加密的页面使用HTTP(没有s)。
以下是我的web.xml中决定哪些资源需要加密的部分。
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Open</web-resource-name>
<url-pattern>/</url-pattern>
<url-pattern>/contact</url-pattern>
<url-pattern>/robots.txt</url-pattern>
<url-pattern>/sitemap.xml</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
答案 0 :(得分:1)
使用Tomcat配置,没有。
您有多种选择:
编写过滤器以将这些页面重定向到HTTP 当请求到达过滤器时,您也可以为其提供服务。重定向到HTTP将导致用户的响应时间变慢。
您可以使用绝对HTTP链接替换不需要HTTPS的页面的链接。这可能是很多工作,您需要小心这样做,以便在您更改Web应用程序的上下文路径时链接不会中断。如果您的服务器位于反向代理之后,它也可能会变得混乱。
与之共存。
就个人而言,我会选择选项3.