Tengo Apache Tomcat ejecutándose con SSL habilitado. Tengo el Servidor HTTP Apache que actúa como un proxy inverso, por lo que si los usuarios presionan http: // myserver / tomcat / se pasan a http: // myserver: 8080 .
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
También tengo el servidor HTTP Apache configurado para SSL, así que cuando los usuarios presionen https: // myserver / tomcat / deberían pasar a https: // myserver: 8443 / .
Con la configuración actual de ProxyPass y ProxyPassReverse, se los redirigirá a la URL que no sea SSL. ¿Cómo puedo configurar el paso de proxy para que redirija a diferentes protocolos y puertos según la solicitud entrante?
Es decir, si alguien entra por HTTPS, ¿cómo puedo redirigirlo a mi tomcat @ https: // myserver: 8443 ?
Actualizar:
@ mike-insch
Lo intenté:
NameVirtualHost *:443
<VirtualHost *:80>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
<VirtualHost *:443>
ProxyPass /tomcat/ https://myserver:8443/
ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>
Ahora cuando visito: https: // myserver / tomcat / me sale "página no encontrada". En el registro de errores, veo "El archivo no existe: / var / apache2 / htdocs / tomcat"
Lo cual es correcto, pero esperaba que la solicitud se enrutara a Tomcat ejecutándose en https: // myserver: 8443 / .
Supongo que necesito mirar más a los hosts virtuales, a menos que algo se vea claramente mal.
fuente
NameVirtualHost
directiva aquí. Además, deberá agregar las directivas apropiadas para habilitar SSL dentro de su<VirtualHost *:443>
sección.Respuestas:
Debe hacer esto a través de dos
<VirtualHost *:X>
directivas independientes . SusHTTP
directivas entran<VirtualHost *:80>
mientras que susHTTPS
directivas entran<VirtualHost *:443>
. Ajuste según sea necesario si su servidor tiene múltiples hosts virtuales basados en direcciones o en nombres configurados. Consulte la documentación de Apache 2 para más detalles.fuente
Para completar: si es una opción, es una buena idea terminar SSL en Apache, en lugar de que Tomcat también lo maneje. Si solo se puede acceder a Tomcat desde Apache, esto es más simple y no menos seguro.
En esta configuración, Apache usaría proxy HTTP y HTTPS para
http://myserver:8080/
:fuente