Eu tenho um WAN-IP com um servidor apache que hospeda A.domain.com e irei reverter o proxy para B.domain.com para outro servidor na mesma rede local.
Sem SSL resolvi assim nos vhosts:
<VirtualHost *:80>
ServerName Z.domain.com
ProxyRequests Off
ProxyPass / http://1.1.1.7/
ProxyPassReverse / http://1.1.1.7/
mas com SSL habilitado não funciona assim...
para melhor compreensão tentei desenhá-lo:
-- 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)
O servidor 1.1.1.1 deve redirecionar para 1.1.1.2
minha configuração /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>
Eu ativei com: a2ensite B.domain.com
e reiniciei o apache. O resultado é um erro interno do servidor se eu ligar para o site. Sem o eu tenho a mesma culpa.
Se eu ligar, apache2ctl -S
parece tudo bem.
Responder1
Tentei as informações do ezra-s "SSLProxyEngine on", mas ainda recebo o erro:
O servidor proxy não conseguiu processar a solicitação GET/
Motivo: Erro durante o handshake SSL com servidor remoto
Depois de alguma pesquisa, encontrei uma solução funcional.
minha configuração /etc/apache2/sites-available/B.domain.com.conf agora:
<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/
Mas a conexão externa ainda é segura agora?
Responder2
Experimente um método mais simples e altere ProxyPass https
para http
.
ProxyPass / http://1.1.1.2/
ProxyPassReverse / http://1.1.1.2/
É bastante comum um frontend (também conhecido comoproxy reverso) para conversar com o back-end com http simples se você proteger razoavelmente a rede 1.1.1.0.
Provavelmente, você não implementou o servidor https em 1.1.1.2... isso causaria os sintomas de erro interno 50x que você descreve.