Eu tenho um servidor http://example.com
com um balanceador de carga na frente chamado https://example.net
realizando descarregamento de SSL e redirecionando o tráfego para a porta 443 para 8080 em http://example.com
.
O servidor example.com
está isolado em uma rede virtual e não pode ser acessado pela Internet. O balanceador de carga example.net
pode alcançar example.com
e ser exposto publicamente à Internet.
Como posso configurar a interface da web do gerenciador Apache Tomcat 8 para ser acessível apenas, http://example.com/manager
mas não de https://example.net/manager
?
Responder1
Não sei qual balanceador de carga você está usando, então não posso fornecer uma configuração específica para isso. Eu mesmo tenho um servidor Tomcat acessível ao público por meio do Nginx, pois é um proxy.
Nginx
upstream websites {
server 192.168.x.x:8080 fail_timeout=0;
}
server {
listen 80;
listen 443 ssl;
server_name www.example.com example.com;
location / {
proxy_pass http://websites/;
include proxy_params;
}
#SSL configuration here
}
Também deixei o Nginx fazer a terminação e compactação SSL porque é muito mais fácil de gerenciar e configurar, e se eu quiser criar balanceamento de carga posteriormente, também posso fazer isso com o Nginx, então não há razão para fazer isso no Tomcat. https://www.digitalocean.com/community/tutorials/how-to-add-the-gzip-module-to-nginx-on-ubuntu-14-04
Em seguida, no Tomcat server.xml, adicione um novo host virtual para o seu site, se ainda não estiver presente.
<Host name="www.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>example.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_example_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
Do que no arquivo manager.xml do projeto do gerenciador, você pode definir quem pode acessar a página HTML do gerenciador, defini-lo como seu endereço IP público ou um host de salto, pelo que me lembro, como padrão, apenas localhost pode se conectar ao gerenciador HTML.
Pessoalmente, excluí o projeto gerenciador de minha própria instalação para evitar problemas de segurança relacionados a ele se não for gerenciado corretamente e não precisar dele.
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.1.*" />
Defina um usuário e uma senha para o gerenciador em tomcat-users.xml e pronto.
Responder2
Configure Proxpass/Porxyalias no servidor Web. Você deve fazer a configuração no HTTP(80) para fazer isso, mas a melhor prática é carregar em https com acesso restrito