Configurando o SSL reverso para o proxy SSL (preferencialmente usando o Squid ou o Apache)

1

Eu tenho tentado obter um proxy reverso funcionando nas últimas horas para um aplicativo que agora precisa ser acessado publicamente.

Para problemas de segurança e provedor-que-bloqueia-porta-80, o aplicativo só pode ser acessado por https. Eu sei que isso pode ser feito com apache ou squid (entre outros). Eu tentei ambos e falhei.

A rede atual é configurada da seguinte forma:

gateway.mydomain.com é o gateway. No gateway, o apache já está configurado com um vhost ssl padrão e o squid é executado como um proxy de encaminhamento regular.

O aplicativo na rede local, link é configurado e acessível conforme o esperado localmente.

Esta é a configuração que eu tentei no squid, na parte superior do conf do squid, adicionei uma diretiva include a /etc/squid/application.conf :

application.conf:

https_port 443 cert=/etc/pki/tls/certs/localhost.crt key=/etc/pki/tls/private/localhost.key defaultsite=application.mydomain.com vhost

# HTTPS peer
cache_peer https://application.mydomain.com parent 443 0 no-query originserver ssl    sslflags=DONT_VERIFY_PEER name=application
cache_mgr root
visible_hostname application.mydomain.com
http_port 443 accel defaultsite=application.mydomain.com
acl all src 0.0.0.0/0.0.0.0

Esta abordagem falha e apresenta o seguinte erro:

SSL connection error Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have. Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.

Eu tentei com o apache, pois preferia manter o gateway atendendo na porta padrão https 443. A configuração do squid não funcionava quando o apache estava escutando em 443, o vhost padrão do apache era servido.

Isso é o que eu tentei com o apache:

ssl.conf, depois do vhost padrão

NameVirtualHost application.mydomain.com:443
<VirtualHost application.mydomain.com:443>
         ServerName application.mydomain.com
         LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
         CustomLog /var/log/httpd/application_log combined
         LogLevel Debug

        SSLProxyEngine On
        SSLCertificateFile /etc/pki/tls/certs/localhost.crt
        SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

      # RewriteEngine on
      # RewriteRule ^/$ /index.html [R]

       ProxyRequests off

       ProxyPass / https://application.mydomain.com
       ProxyPassReverse / https://application.mydomain.com
</VirtualHost>

Esta seria a minha maneira preferida de fazê-lo, todos os aplicativos seriam executados na porta 443, mas com essa configuração não importa o que eu tentei o vhost padrão é sempre aquele que está sendo servido.

Se alguém tiver uma pista para lula ou apache, ficaria muito grato.

    
por stefgosselin 28.02.2013 / 07:33

0 respostas