我一直在尝试找到一种方法来轻松判断Java服务器是否从JSP启用了SSL以重定向单个页面。我的理由是,我只想转发到SSL,如果启用了SSL,就可以轻松地在我们的本地开发系统中进行测试,而不必设置证书,然后部署到我们的发布系统,让证书“工作”。
我曾尝试创建一个SslSocketFactory,看看它是否能正常工作而不抛出异常,但这似乎并不像我想的那样工作。然而,我不是特别喜欢这种方法,因为我不得不花时间创建工厂,结果只是把它扔掉了。我真的只是在寻找一个我可以使用的public boolean isSslEnabled()方法调用。
目前我们的默认状态是不使用HTTPS,但在发布系统上,您可以通过HTTPS访问站点。这并不理想,因为用户仍然可以通过HTTP访问该站点,然后所有内容都将以明文形式发送。我也不打算加密整个服务器,如果启用了SSL,我只想加密一个页面。
发布于 2012-05-27 03:05:09
您的Java代码不应该关心是否启用了SSL。尝试将他的配置仅保留为配置。
如果您已经在web.xml中设置了您的SSL需求,那么您的开发人员可以覆盖本地服务器需求的本地web.xml (例如eclipse)。
如果您关心针对每个生产服务器的SSL,那么最好创建您自己的Certificate Authority并生成您自己的SSL证书。这样,您就可以在预生产和生产环境中部署完全相同的 EAR或WAR。你不会想在每个环境中摆弄部署。
Tomcat SSL config
发布于 2012-05-31 03:51:19
我最终所做的是将所有SSL重定向/强制执行转移到Apache中,而不是在Tomcat中担心它。我在Apache后面运行Tomcat,看起来这是获得强制SSL的最佳解决方案。我使用Apache中的mod_rewrite来执行规则,它看起来工作得很棒。
https://stackoverflow.com/questions/10768421
复制相似问题