0

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

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

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

4

2 回答 2

2

您的 Java 代码不应该关心 SSL 是否启用。尽量让他只进行配置。

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

如果您担心每个生产服务器的 SSL,最好创建您自己的证书颁发机构并生成您自己的 SSL 证书。这样您就可以将完全相同的EAR 或 WAR 部署到预生产环境和生产环境。您不想在每个环境中摆弄您的部署。

Jboss SSL 配置

Tomcat SSL 配置

于 2012-05-26T19:05:08.960 回答
0

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

于 2012-05-30T19:51:18.993 回答