我有一个服务器http://example.com
,它前面有一个负载均衡器,名为https://example.net
执行 SSL 卸载并将流量重定向到它上面的端口 443 到 8080 in http://example.com
.
服务器example.com
被隔离在虚拟网络中,无法从 Internet 访问。负载均衡器example.net
可以访问example.com
并公开暴露在互联网上。
如何将 Apache Tomcat 8 管理器 Web 界面设置为只能从http://example.com/manager
但不能从访问https://example.net/manager
?
我不知道您使用的是什么负载均衡器,因此无法为其提供特定的配置,我自己通过 Nginx 有一个公共可访问的 tomcat 服务器作为它的代理。
Nginx
我还让 Nginx 进行 SSL 终止和压缩,因为它更易于管理和设置,如果我想稍后创建负载平衡,我也可以使用 Nginx 来做到这一点,所以没有理由在 Tomcat 中这样做。 https://www.digitalocean.com/community/tutorials/how-to-add-the-gzip-module-to-nginx-on-ubuntu-14-04
https://letsencrypt.org/
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
如果还没有,则在 Tomcat server.xml 上为您的站点添加一个新的虚拟主机。
比在管理器项目的 manager.xml 文件中,您可以设置谁可以访问管理器 HTML 页面,或者将其设置为您的公共 IP 地址或跳转主机,因为我记得标准只有 localhost 可以连接到 HTML 管理器。
就个人而言,我已经从我自己的安装中删除了管理器项目,以避免与它相关的安全问题,如果管理不正确并且我不需要它。
在 tomcat-users.xml 中为管理器设置用户和密码,一切顺利。
在 Web 服务器中配置 Proxpass/Porxyalias。您应该在 HTTP(80) 中进行配置以执行此操作,但最佳做法是您可以在 https 中加载受限访问