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