【发布时间】:2014-05-27 21:09:07
【问题描述】:
当在 openshift 上使用 https 时,我的 tomcat 是否在 apache 服务器后面? 我的意思是我的客户端是直接连接到我的tomcat,还是连接到apache服务器,然后apache服务器通过AJP连接器连接到我的tomcat?
如果 apache 是中间人,那么我不会直接获取客户的 IP 地址,而是使用 x-forward http 标头。我失去了对证书验证和信任管理的控制。目前我使用的是mochahost的服务器。 https 没有到达我的 tomcat,但被 apache 拦截。我讨厌这个。
以前,我使用了另一个托管服务,甚至 2 个 apache 服务器都在我的 tomcat 服务器前面。更可笑的是 2 台 apache 服务器和我的 Tomcat 服务器在同一台机器上。这样的配置只能说明系统架构没有合适的管理能力。
顺便说一下,我说的是青铜/白银计划。我猜 Openshift 并没有什么不同,虽然我还没有尝试过。有人对我的问题有明确的答案吗?
https是针对中间人的,但是有了tomcat服务器,这个世界上没有可以避开中间人的服务。不是因为技术不允许,而是负责人没有真正了解这个东西,所以不能也不愿意提供合适的服务。
我想问:如果你使用tomcat服务器,有没有不充当中间人的托管服务商?没有。目前这个世界上没有(2014 年 5 月)!
杰克
【问题讨论】:
-
这是因为如果没有以 root 身份运行,tomcat 无法在端口 80 上启动 - 这是任何人都不允许的
-
To@TheSteve0,在我看来你说的不对,原因:#1。假设tomcat可以在80/443上运行而不是root,他们会这样配置吗?不!除非他们能提供私有IP。否则,您在 80/443 上运行的 tomcat 将接管整个 IP。 #2。假设提供了私有IP,那么应该使用linux权限机制,所以可以使用authbind和其他工具来绑定80/443(非root!)。 #3。假设有私有IP,由于不了解权限机制,80/443还是不允许,IP表可以用来提升性能,而不是通过apache。
-
致@TheSteve0,总的来说因为那个职位的人只接受过apache培训,所以他们不知道linux权限机制,不知道IP表。在redhat,这不应该发生,因为我猜他们有些人非常了解权限机制。为什么他们不使用它?估计是不同部门!还没有协同作用。我认为我对架构非常了解,但我无法获得那个职位。
-
在 linux 系统上,唯一可以绑定到端口 80 的用户是 root。您可以使用 IPtables 重新路由,但要修改 iptables,您还需要是表。这通常是人们在 Tomcat 前使用 Apache 的原因。 Apache 有更好的机制来绑定到端口 80,然后作为 Apache 运行。然后它将代理对 Tomcat 的调用
-
感谢您的响应,但我想知道您是否检查过什么是 authbind/privbind 和 setcap 等。您需要 root 才能修改 iptables 与以 root 身份运行的应用程序不同。你所说的方式让我觉得你是其中之一,你在 linux 和安全方面的教育是值得怀疑的。我个人的看法可能是错误的。@TheSteve0
标签: apache tomcat ssl openshift