Proxy Apache/redireccionar https a https con una ip

Proxy Apache/redireccionar https a https con una ip

Tengo una WAN-IP con un servidor web Apache que aloja A.domain.com y invertiré el proxy de B.domain.com en otro servidor en la misma red local.

Sin SSL lo resolví de esta manera en los vhosts:

<VirtualHost *:80>
ServerName Z.domain.com
ProxyRequests Off

ProxyPass / http://1.1.1.7/
ProxyPassReverse / http://1.1.1.7/

pero con SSL habilitado no funciona de esta manera...

Para una mejor comprensión intenté dibujarlo:

                                       -- A.domain.com(local IP:1.1.1.1)
                                      |
WAN --¦Firewall (NAT to 1.1.1.1) ¦-- LAN
                                      |
                                       -- B.domain.com(local IP:1.1.1.2)

El servidor 1.1.1.1 debería redirigir a 1.1.1.2

mi configuración /etc/apache2/sites-available/B.domain.com.conf:

<VirtualHost *:443>
        ServerName B.domain.com
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/B.domain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/B.domain.com/privkey.pem

        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPass / https://1.1.1.2/
        ProxyPassReverse / https://1.1.1.2/
</VirtualHost>

Lo activé con: a2ensite B.domain.com y reinicié Apache. El resultado es un error interno del servidor si llamo al sitio. Sin el tengo el mismo fallo.

Si llamo apache2ctl -Sse ve todo bien.

Respuesta1

Probé la información de ezra-s "SSLProxyEngine activado" pero sigo recibiendo el error:

El servidor proxy no pudo manejar la solicitud GET/

Motivo: Error durante el protocolo de enlace SSL con el servidor remoto

Después de buscar un poco, encontré una solución que funciona.

mi configuración /etc/apache2/sites-available/B.domain.com.conf ahora:

<VirtualHost *:443>
    ServerName B.domain.com
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    SSLCertificateFile /etc/letsencrypt/live/B.domain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/B.domain.com/privkey.pem

    ProxyPass / https://1.1.1.2/
    ProxyPassReverse / https://1.1.1.2/

¿Pero la conexión desde el exterior sigue siendo segura ahora?

Respuesta2

Pruebe un método más sencillo y cambie ProxyPass httpsa http.

    ProxyPass        / http://1.1.1.2/
    ProxyPassReverse / http://1.1.1.2/

Es bastante habitual que una interfaz (también conocida comoproxy inverso) para comunicarse con el backend con http simple si asegura razonablemente la red 1.1.1.0.

Lo más probable es que no haya implementado el servidor https en 1.1.1.2 en absoluto... esto le daría los síntomas de error interno 50x que describe.

información relacionada