Configuración de SSL inverso a proxy SSL (preferiblemente usando Squid o Apache)

Configuración de SSL inverso a proxy SSL (preferiblemente usando Squid o Apache)

He estado intentando poner en funcionamiento un proxy inverso durante las últimas horas para una aplicación a la que ahora es necesario acceder públicamente.

Por cuestiones de seguridad y del proveedor que bloquea el puerto 80, solo se puede acceder a la aplicación mediante https. Sé que esto se puede hacer con apache o squid (entre otros). Probé ambos y fallé.

La red actual está configurada así:

gateway.midominio.com es la puerta de enlace. En la puerta de enlace, Apache ya está configurado con un vhost SSL predeterminado y Squid se ejecuta como un proxy de reenvío normal.

La aplicación en la red local,https://aplicación.midominio.comestá configurado y es accesible como se esperaba localmente.

Esta es la configuración que probé en squid, en la parte superior de squid conf agregué una directiva de inclusión a /etc/squid/application.conf:

aplicación.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

Este enfoque falla y da el siguiente error:

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.

Luego probé con Apache, ya que preferiría mantener la puerta de enlace escuchando en el puerto https estándar 443. La configuración de Squid no funcionaba cuando Apache escuchaba en 443, se servía el vhost predeterminado de Apache.

Esto es lo que probé con Apache:

ssl.conf, después del vhost predeterminado

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 sería mi forma preferida de hacerlo, todas las aplicaciones se ejecutarían en el puerto 443, pero con esta configuración, sin importar lo que intenté, el vhost predeterminado siempre es el que se sirve.

Si alguien tiene alguna idea sobre el calamar o el apache, se lo agradecería mucho.

información relacionada