首页 文章

Tomcat / Spring SSL配置

提问于
浏览
0

我正在尝试将我的Spring应用程序配置为使用从CA购买的SSL证书 . 我按照Tomcat 6.0 configuration的说明进行操作,并将密钥导入我的Tomcat密钥库,并取消注释server.xml中的SSL连接器 . 当我启动Tomcat时,我看到连接器在Tomcat日志中的端口8443上启动,但是当我转到https://example.com:8443或http://example.com:8443或https://example.com时(没有空格 - 我不知道)它有发布链接的声誉),它超时 . 我需要做什么其他配置才能为我的Spring应用程序启用SSL . 我是否必须更改应用程序配置?

我还想通过SSL只有一些URL(登录,编辑 Profiles 等) . 我怎样才能在Spring配置中允许这个?如果我必须通过SSL访问所有URL,那就没问题,但不可取 . 我还没有找到任何特定于Spring的教程 .

3 回答

  • 0

    您需要做的是编辑 server.xml 文件以启用ssl . 在这里's Tomcat'的指南,请查看:

    http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

    为了以编程方式知道请求是否已通过端口80或443到达,您需要检查 request.isSecure() 返回的值 .

    为了完全保护URL,我建议使用过滤器 .

    我不记得Spring是如何处理所有这些的,但我认为获取请求对象不会有任何问题 .

    希望有所帮助 .

  • 0

    根据@mschonaker引用的文档配置Tomcat之后,最简单的方法是在j_security_check中定义操作并编辑配置文件表单等,指定https:protocol,例如:在Facelet中,https://# :8443# / j_security_check . 然后,当用户点击登录按钮时,表单通过HTTPS发送POST,因此它们是安全的 .

    这将使您在会话的其余部分使用HTTPS:要返回到HTTP但仍保持在同一会话中,只需提供指向完全指定的HTTP URL的链接,例如:在Facelet中,http://# :8443# /某个链接 .

    如果您在阅读时想要保护其他页面,请在web.xml中为它们定义适当的security-constraint,user-data-constraint和transport-guarantee CONFIDENTIAL元素 .

  • 0

    关于第二点

    我还想通过SSL只有一些URL(登录,编辑 Profiles 等) . ???

    您可以通过修改web.xml中的configration来确定它

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>securedapp</web-resource-name>
           <!-- <url-pattern>/*</url-pattern> -->  <!--all pages-->
            <url-pattern>/yourapp/login</url-pattern>
            <url-pattern>/yourapp/edit</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    

    希望对你有所帮助

相关问题