Error durante el protocolo de enlace SSL con el servidor remoto


118

Tengo Apache2(escuchando en 443) y una aplicación web ejecutándose Tomcat7(escuchando en 8443) Ubuntu.

Configuré apache2 como proxy inverso para acceder a la aplicación web a través del puerto 443 en lugar de 8443. Además, necesito tener comunicación SSL no solo entre el navegador y apache2 sino también entre apache2 y tomcat7, por lo que configuro SSL tanto en apache2 como en tomcat7 . Si intento acceder a la aplicación web poniéndome en contacto directamente con tomcat7, todo está bien. El problema es que cuando intento acceder a la aplicación web de tomcat a través de apache2 (proxy inverso), en el navegador aparece el error:

Proxy Error
The proxy server could not handle the request GET /web_app.
Reason: Error during SSL Handshake with remote server

Apache no confía en el certificado que ha instalado en el tomcat. ¿Es un certificado autofirmado? ¿O está hecho por una CA interna?
MK.

2
Está autofirmado con este comando: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
user2791481

3
serverfault.com/questions/356678/… Creo que esto es lo que quieres: SSLProxyVerify none SSLProxyCheckPeerCN off
MK.

9
Es mejor configurar SSLProxyCACertificateFilesu certificado CA privado, en lugar de simplemente desactivar la verificación.
ndbroadbent

como se explica en este blog , puede desactivar las comprobaciones de SSL.
HybrisHelp

Respuestas:


265

El comentario de MK me indicó la dirección correcta.

En el caso de Apache 2.4 y versiones posteriores, existen diferentes valores predeterminados y una nueva directiva.

Estoy ejecutando Apache 2.4.6 y tuve que agregar las siguientes directivas para que funcione:

SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

Entonces, esto desactiva la protección, pero siempre que el tráfico sea local (es decir, 127.0.0.1:8443 ), debería ser un problema menor, ¿verdad?
bgStack15

5
Bueno, no desactiva la protección en lo que respecta al cifrado. El tráfico todavía está encriptado. Esto simplemente desactiva la verificación del certificado para asegurarse de que sea de una autoridad confiable. Entonces, si confía en el servidor, no debería tener ningún problema. Pero sí, para el tráfico local creo que tú también estás bien.
mydoghasworms

1
Gracias mydoghasworms. Sus directivas funcionan en la versión del servidor: Apache / 2.4.6. Si alguien necesita saber la versión de httpd, use esto: httpd -V
JRichardsz

3

Tengo 2 servidores configurados en Docker, proxy inverso y servidor web. Este error comenzó a ocurrir en todos mis sitios web de repente después de 1 año. Al configurar antes, generé un certificado autofirmado en el servidor web.

Entonces, tuve que generar el certificado SSL nuevamente y comenzó a funcionar ...

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl.key -out ssl.crt


1

Enfrentó el mismo problema que OP:

  • Tomcat devolvió una respuesta al acceder directamente a través de la interfaz de usuario de SOAP
  • No cargué archivos html
  • Cuando se usaron las propiedades de Apache mencionadas en la respuesta anterior, apareció una página web pero AngularJS no pudo obtener una respuesta HTTP

El certificado SSL de Tomcat caducó mientras un navegador lo mostraba como seguro: el certificado de Apache estaba lejos de caducar. La actualización del archivo Tomcat KeyStore resolvió el problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.