for err_ssl_protocol_error enable apache tomcat grails ssl spring-security

apache - err_ssl_protocol_error - install ssl tomcat



Tomcat detrĂ¡s de Apache y SSL (2)

Desde su publicación, no puedo decir si se está metiendo en un problema mientras SSL trabaja en Apache o si, dado que tiene ciertas partes de su aplicación sobre http, Apache nunca redirige a través de SSL. Tenga en cuenta que está perfectamente bien tener múltiples "segmentos" sobre ssl (es decir, usuario -> Apache sobre ssl y Apache -> tomcat sobre ssl).
1. Si el problema es hacer que ssl funcione sobre Apache, deberá asegurarse de que ssl esté configurado correctamente en el extremo de Apache.
2. Si el problema es "redirigir", intente mantener URL separadas para http y https. Me gusta /something.mysite.com/non_ssl/ y /something.mysite.com/ssl/. Esto hará que sea más fácil escribir las reglas en Apache.

He estado buscando en todas partes pero no puedo encontrar una solución clara para la siguiente situación:

Tenemos una aplicación web (Grails + Spring Security) que se ejecuta en tomcat, detrás de apache. Parte de la aplicación necesita ejecutarse en https, por lo que si utiliza Spring Security Channel Security, cada vez que navegue a una parte de la aplicación que sea segura, Spring lo redirigirá a https con un código de estado 302.

Ahora, tomcat está configurado para conocer los https y los certificados, por lo que sabe cómo manejar el ssl. De hecho, cuando apache de lado yendo directamente a la url y al puerto para atacar a tomcat directamente, todo funciona al 100%.

El problema ahora viene cuando se coloca apache delante de tomcat. La configuración de Apache que tenemos en este momento funciona bien para las partes no seguras de la aplicación. Estamos usando mod_jk para proxy apache y tomcat.

Sin embargo, tan pronto como intentes ir a una parte segura de la aplicación, Spring te redirigirá, golpeará el

<VirtualHost _default_:443> ... </VirtualHost>

parte de la configuración de apache ... y aquí es donde comienza el problema.

Por lo que he leído, es posible que apache, a través de mod_jk, pase el manejo del ssl a tomcat. Pero parece que no podemos obtener la configuración correcta para esto. Como tomcat ya está configurado para el ssl, sabe dónde están los certificados y Spring Security está configurado, nos gustaría que tomcat maneje todo el ssl y apache simplemente para empeñarlo en tomcat.

¿Es esto posible, o me estoy perdiendo algo? ¿Alguien tiene alguna instrucción clara sobre cómo configurar esto? Cualquier ayuda será apreciada.

Estamos usando Apache 2.2 y tomat 7.0.27

Gracias


No se puede retransmitir el tráfico SSL / TLS a Tomcat desde Apache. O bien su conexión SSL termina en Apache, y luego debe revertir el tráfico proxy a Tomcat (SSL es raramente útil en este caso), o hace que los clientes se conecten directamente a Tomcat y le permitan manejar la conexión SSL.

No estoy seguro de dónde ha leído que mod_jk puede pasar la conexión SSL a Tomcat. Necesitaría retransmitir directamente el socket, evitando así el protocolo AJP utilizado por mod_jk (por cierto, mod_proxy_ajp es la nueva forma, o incluso mod_proxy_http ).

No estoy seguro de por qué querría que Apache esté frente a Tomcat si quiere que Tomcat maneje las solicitudes SSL de todos modos. Si esto tiene que ver con números de puertos o algo así, use una regla de firewall para reenviar el puerto 443 al puerto Tomcat.

Además, tenga cuidado con la forma en que se realizan estas redirecciones automáticas de HTTP a HTTPS: solo suceden después de que se haya realizado la solicitud HTTP inicial .