我们正在托管在JBoss上运行的Java EE应用程序。出于安全原因,应该在Internet上提供的此应用程序受前端Apache服务器保护。我们正在使用AJP来实现这一点。
当我们通过http访问应用程序时,这工作正常。当我们尝试使用https执行此操作时,它不起作用,当我们访问Java EE应用程序时,我们收到404错误。我们已将SSL证书放在Apache服务器中。
答案 0 :(得分:2)
加密和SSL支持
AJP协议未加密,因此不应与公共网络基础结构一起使用。如果需要保护Web和应用程序服务器之间的数据传输,因为传输介质可能被外界嗅探,那么必须使用某种SSL隧道。另一种选择是将https协议与mod_proxy一起使用。但是,使用https协议会使事情变得更复杂,因为必须确保在应用程序服务器中编写自定义Filter,以便客户端证书透明地传递给应用程序服务器。另一方面,AJP协议自动处理此问题,但结果是在Web和应用程序服务器之间传递解密数据。对于SSL而言,AJP协议的行为类似于缓存SSL加速器。 这提供了更高的性能,因为数据只被解密一次。使用不同的网卡和一组防火墙和路由器在Web和应用程序服务器之间保护网络是最安全的解决方案。 另一个选择是将Web和应用程序服务器放在同一物理盒上,在这种情况下将使用内存中通信,从而提高整个系统的安全性。
答案 1 :(得分:1)
通常使用单独的虚拟主机(vhost)启用Apache上的SSL。您是否为该虚拟主机启用并配置了mod_jk
(mod_proxy_ajp/mod_cluster
)?