Tengo un servidor http://example.com
con un equilibrador de carga delante llamado https://example.net
que realiza la descarga de SSL y redirige el tráfico al puerto 443 al 8080 en http://example.com
.
El servidor example.com
está aislado en una red virtual y no se puede acceder a él desde Internet. El equilibrador de carga example.net
puede llegar example.com
a Internet y está expuesto públicamente a él.
¿Cómo puedo configurar la interfaz web del administrador de Apache Tomcat 8 para que sea accesible solo desde http://example.com/manager
pero no desde https://example.net/manager
?
Respuesta1
No sé qué balanceador de carga estás usando, así que no puedo darle una configuración específica. Yo mismo tengo un servidor Tomcat de acceso público a través de Nginx como 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
}
También dejo que Nginx realice la terminación y compresión de SSL porque es mucho más fácil de administrar y configurar, y si luego quiero crear un equilibrio de carga, también puedo hacerlo con Nginx, así que no hay razón para hacerlo en Tomcat. https://www.digitalocean.com/community/tutorials/how-to-add-the-gzip-module-to-nginx-on-ubuntu-14-04
Luego, en Tomcat server.xml, agregue un nuevo host virtual para su sitio si aún no está 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>
En el archivo manager.xml para el proyecto del administrador, puede configurar quién puede acceder a la página HTML del administrador, ya sea con su dirección IP pública o con un servidor de salto, según recuerdo, como estándar, solo el host local puede conectarse al administrador HTML.
Personalmente, eliminé el proyecto del administrador de mi propia instalación para evitar problemas de seguridad relacionados con él si no se administra correctamente y no lo necesito.
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.1.*" />
Establezca un usuario y una contraseña para el administrador en tomcat-users.xml y estará listo.
Respuesta2
Configure Proxpass/Porxyalias en el servidor web. Debe realizar la configuración en HTTP(80) para hacer esto, pero la mejor práctica es que puede cargar en https con acceso restringido