仅在jsp中启用时才重定向到SSL

时间:2012-05-26 17:37:50

标签: java jsp ssl

我一直试图找到一种方法来轻松告知Java Server是否已从JSP启用SSL以重定向单个页面。我的理由是,如果启用SSL,我只想转发SSL,这样就可以轻松地在我们的本地开发系统中进行测试,而无需设置证书,然后部署到我们的发布系统并让证书“正常工作”。

我已经看过尝试创建一个SslSocketFactory并查看它是否正常工作而没有抛出异常,但这似乎并没有像我想的那样工作。我并不特别喜欢这种方法,因为我必须花时间创建工厂才能扔掉它。我真的只是在寻找一个我可以使用的public boolean isSslEnabled()方法调用。

目前我们所拥有的是默认状态是不使用HTTPS,但是在发布系统上,您可以通过HTTPS访问该站点。这并不理想,因为用户仍然可以通过HTTP访问该站点,然后一切都将以明文形式发送。我也不打算加密整个服务器,如果启用SSL则只需要一个页面。

2 个答案:

答案 0 :(得分:2)

您的Java代码不应该关注SSL是否启用。尝试只留下他的配置。

如果您已在web.xml中设置了SSL要求,那么您的开发人员可以覆盖其本地web.xml以满足其本地服务器要求(例如eclipse)。

如果您为每个生产服务器关注SSL,最好创建自己的证书颁发机构并生成自己的SSL证书。这样您就可以将完全相同的 EAR或WAR部署到预生产环境和生产环境中。您不希望为每个环境调整部署。

Jboss SSL config

Tomcat SSL config

答案 1 :(得分:0)

我最终做的是将所有SSL重定向/强制转移到Apache而不是在Tomcat中担心它。我在Apache后面运行Tomcat,似乎这是获得强制SSL的最佳解决方案。我使用Apache中的mod_rewrite来强制执行规则,它看起来像是一个魅力。