java - httpd和tomcat之间的通信安全吗?

标签 java apache tomcat ssl encryption

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

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

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

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

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

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

最佳答案

如果您坚持使用本地主机(例如,在与 tomcat 相同的服务器上安装 Apache httpd),这很可能是安全的:如果您不信任“本地主机”网络的实现,您就无法信任 TLS 实现同样的服务器。

您可以通过将 Apache 安装在与 tomcat 不同的服务器上来提高性能。在那种情况下,您显然依赖于两者之间的网络:路由器、电缆等。如果您不信任您的网络,这可能是您可以解决的问题。但是,请注意,您可能还在 tomcat 和文件系统(临时文件)、数据库等之间建立了某种联系 - 如果传输加密已确定,如果您不信任您的数据中心/网络安全,数据仍可能从该应用程序中泄漏。

我们无法判断您可以信任您的网络的级别,您必须自己做。

请注意,在您在问题中提到的情况下,当您只是在 http 上转发时,tomcat 将不知道已在 https 中建立连接(例如:浏览器 -> Apache 是 https,Apache -> tomcat 是 http)

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

关于java - httpd和tomcat之间的通信安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941595/

相关文章:

java - 使用java在列表中添加数字

java - Eclipse IDE运行错误

java - 我应该怎么做才能在图像中看到复平面的一般矩形区域?

php - $_POST 在 php5.6 中为空

ruby-on-rails - 开发 Ruby On Rails 网络应用程序 : How can I move it to a server?

postgresql - 如何链接 apache tomcat 7 和 postgresql

eclipse - Eclipse 中的 Tomcat 会覆盖上下文片段

java - 如何检查整数是否与给定的 "5+4n"表达式匹配?

php - 如何将路径添加到 Apache PATH 变量?

Tomcat 8080端口在其他网络无法查看