Tomcat的安全限制配置是否是必需的?

29

为了在Tomcat下进行SSL配置测试,以下内容是否全部必需?

以下内容摘自网站

为了进行测试,选取一个已经成功部署在Tomcat中的应用程序,并通过http和https访问以查看是否正常工作。如果是,则在其web.xml文件结束标签即</web-app>之前添加此XML片段。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>securedapp</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
这个配置是否必须在web.xml文件中进行?

1
如果您想将该块应用于所有内容,则可以将其放在${CATALINA_HOME}/conf/web.xml中。 - Paul
2个回答

47
不,这并非必须。它意味着您的Web应用程序仅通过HTTPS可用(而不是通过HTTP可用)。
如果省略<transport-guarantee>CONFIDENTIAL</transport-guarantee>标签(或整个<security-constraint>),则您的应用程序将通过HTTP和HTTPS都可用。如果您的web.xml包含<transport-guarantee>CONFIDENTIAL</transport-guarantee>,则Tomcat会自动将请求重定向到SSL端口,如果您尝试使用HTTP。
请注意,默认的Tomcat配置不启用SSL连接器,您需要手动启用它。 有关详细信息,请查看SSL Configuration HOW-TO

1
端口号是否可以保持不变,只是重定向到https? - shzyincu
我有一个URL https://pen.srv.co.uk:8082/pentaho/Home,它运行良好,但我想要的是,如果用户尝试访问URL的非https版本,则应将其重定向到同一端口8082上的https。这是否可能? - shzyincu
@shzyincu:抱歉,我无法帮助你解决这个问题,我认为你应该作为一个新问题进行提问。 - palacsint

5
如果你仔细查看,这个博客进一步解释了这个问题:

你的应用程序中的任何资源都只能通过HTTPS访问,无论是Servlet还是JSP。术语CONFIDENTIAL是告诉服务器使应用程序在SSL上工作的术语。如果你想关闭此应用程序的SSL模式,那么只需不删除该片段,而是将值设置为NONE,而不是CONFIDENTIAL


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接