httpd和tomcat之间的通信安全吗



我们有一个在tomcat 8080端口上运行的应用程序,我们正在引导Apache httpd,SSL已安装并实现,所有请求都重定向到443端口,并通过mod_proxy_httpd:代理到tomcat 808

ProxyPass / http://localhost:8080/ retry=0 timeout=5
ProxyPassReverse / http://localhost:8080/

一切都很好,从客户端到httpd的请求是安全的,但httpd和tomcat之间的通信显然没有加密。

我的问题是:1.如果httpd和tomcat之间的通信没有加密,这会是一个问题吗?假设httpd和tomcat在同一服务器下?

2.我们在支付过程中传输敏感数据,如客户信用卡信息,我们是否也需要在tomcat(例如8443端口)上实现SSL,并将请求从443代理到安全的tomcat 8443端口?因此,从客户端到httpd再到tomcat,它都是安全的,但这可能会影响性能,因为需要双向加密/解密。

我们一直在寻找这个问题,但没有找到明确的答案。非常感谢您的帮助。

如果你坚持使用localhost(例如,在与tomcat相同的服务器上使用Apache httpd),这很可能是安全的:如果你不信任"localhost"网络的实现,你也不能信任同一服务器上的TLS实现。

通过在不同于tomcat的服务器上安装Apache,您可能会获得性能。在这种情况下,你显然依赖于两者之间的网络:路由器、电缆等。如果你不信任你的网络,这可能是你可以处理的事情。然而,请注意,tomcat和文件系统(临时文件)、数据库等之间可能也有一些连接,如果您不能信任数据中心/网络的安全性,数据仍然可能从该应用程序中泄漏。

我们无法判断你可以在多大程度上信任你的人际网络,你必须自己做到这一点。

注意,在你在问题中提到的情况下,当你在http上转发时,tomcat将不知道已经在https中建立了连接(例如:Browser->Apache是https,Apache->tomcat是http)

您可以将tomcat的连接器配置为假定连接是安全的(在连接器的文档中查找secure属性),但这也意味着您绝对需要确保从不允许http连接转发到该连接器。检查AJP(一种不同的协议)是否适合您——它会将HTTP(S)连接的所有属性正确转发到tomcat。有些人喜欢(我也是其中之一),有些人不喜欢。

最新更新