ProxyPass HTTPS para outro servidor

4

Eu tenho um servidor frontend.example.com com o IP público. É o Apache (2.4) que deve fazer proxy do tráfego vindo de service1.example.com (alias DNS para frontend.example.com ).

service1.example.com é uma VM em uma LAN privada ( 192.168.56.0 ) entre as duas.

Agora, isso é fácil para o HTTP:

<VirtualHost *:80>
        ServerName service1.example.com

        ProxyPass / http://192.168.56.2/
        ProxyPassReverse / http://192.168.56.2/

        <Location "/">
                Require all granted
        </Location>
</VirtualHost>

Estou tentando fazer o mesmo para HTTPS:

<VirtualHost *:443>
        ServerName service1.example.com

        SSLEngine On
        SSLProxyEngine On
        ProxyRequests Off
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerExpire off
        SSLInsecureRenegotiation on
        SSLProxyVerify none
        SSLVerifyClient none
        SSLCertificateFile /etc/ssl/certs/example_com.crt
        SSLCertificateKeyFile /etc/ssl/certs/example_com.key

        ProxyPass / https://192.168.56.2/
        ProxyPassReverse / https://192.168.56.2/

        <Location "/">
                Require all granted
        </Location>
</VirtualHost>

Tentando acessar service1.example.com via retornos HTTPS: Erro durante o handshake SSL com o servidor remoto

A segurança não é minha preocupação aqui. service1 requer uma conexão HTTPS com alguns de seus serviços, é por isso que não estou simplesmente fazendo proxy de HTTPS para HTTP. Eu não quero que frontend.example.com esteja envolvido com o SSL. O que eu gostaria é que diga "ei, eu tenho uma conexão no 443, não estou lidando com isso, estou apenas encaminhando para esse IP interno, que vai cuidar disso". Eu só quero que ele passe o pedido. Isso pode ser feito?

Como você pode ver na configuração HTTPS acima, eu tentei relaxar a segurança tanto quanto possível (por exemplo, SSLInsecureRenegotiation on deve diminuir as barreiras contra um ataque man-in-the-middle, não é? ?) Mas nada funcionou até agora.

    
por cornuz 03.09.2015 / 13:06

1 resposta

2

Aparentemente, a única diretiva que faltava era SSLProxyCheckPeerName off . Agora funciona.

    
por 03.09.2015 / 16:33