tomcat如何为区域设置请求提供Http,为远程请求提供https

时间:2016-06-02 07:46:52

标签: java http tomcat https

我在tomcat 8容器中有一个Spring应用程序,该应用程序具有本地(Intranet)和远程(Internet)服务。我想通过简单的HTTP和远程HTTPS服务本地服务,是否可以编辑tomcat配置并且在应用程序内部没有过滤请求?

我应该通过其IP地址区分本地和远程请求。

2 个答案:

答案 0 :(得分:0)

你不应该这样做。您的本地网络应受防火墙保护,您只需将防火墙配置为仅允许安全端口通过。

来自Intranet的本地流量不通过防火墙,因此它可以访问HTTP端口(80,8080,...)。

外部流量通过防火墙进入,它将阻止HTTP端口并允许HTTPS端口(443,8443,...)。

通常使用HTTPS,你甚至不让Tomcat处理它,而是把IIS(Windows)或Apache(Linux)放在它前面。在这种情况下,您在localhost上只有一个AJP连接器,没有人可以直接与Tomcat通信。然后,前端Web服务器将执行所需的过滤和SSL / TLS握手。

答案 1 :(得分:0)

如果您有任何值得使用https的话,我会选择一直使用https:否则您迟早会有信息泄露,因为您错过了配置的一些关键部分。 HTTPS不再是黑魔法,如果存在,性能影响很小。

事实上,我看到的典型用例与您的完全相反:Intranet使用通常比Internet访问更受保护(被认为是匿名的,但这取决于站点的性质)。但是,Intranet通常是经过身份验证的(通常比Internet端更多),我希望保护身份验证非常重要。我可以为情况提出的唯一混合模式解决方案(http / https)是:使用HSTS as soon as a user logs in,不要打扰其他。

你要求与我通常看到的相反 - 但我实际上首选的解决方案(在所有情况下)是:强制https无处不在,使用HSTS。别担心了。易于维护,易于设置且难以出错。