Konfigurieren eines Reverse-SSL-zu-SSL-Proxys (vorzugsweise mit Squid oder Apache)

Konfigurieren eines Reverse-SSL-zu-SSL-Proxys (vorzugsweise mit Squid oder Apache)

Ich versuche seit einigen Stunden, einen Reverse-Proxy für eine Anwendung zum Laufen zu bringen, auf die jetzt öffentlich zugegriffen werden muss.

Aus Sicherheitsgründen und wegen eines Providers, der Port 80 blockiert, kann die Anwendung nur über https erreicht werden. Ich weiß, dass dies entweder mit Apache oder Squid (unter anderem) möglich ist. Ich habe beides versucht und es ist fehlgeschlagen.

Das aktuelle Netzwerk ist wie folgt eingerichtet:

gateway.mydomain.com ist das Gateway. Auf dem Gateway ist Apache bereits mit einem Standard-SSL-Vhost konfiguriert und Squid läuft als normaler Forward-Proxy.

Die Anwendung im lokalen Netzwerk,https://anwendung.meinedomain.comist wie erwartet lokal eingerichtet und zugänglich.

Dies ist die Konfiguration, die ich mit Squid ausprobiert habe. Oben in der Squid-Konfiguration habe ich eine Include-Direktive hinzugefügt /etc/squid/application.conf:

anwendung.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

Dieser Ansatz schlägt fehl und führt zu folgendem Fehler:

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.

Ich habe es dann mit Apache versucht, da ich es vorziehen würde, das Gateway weiterhin auf dem Standard-HTTP-Port 443 abhören zu lassen. Die Squid-Konfiguration funktionierte nicht, wenn Apache auf 443 abhörte, da der standardmäßige Apache-VHost bereitgestellt wurde.

Folgendes habe ich mit Apache versucht:

ssl.conf, nach Standard-vhost

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>

Dies wäre die von mir bevorzugte Vorgehensweise. Alle Apps würden auf Port 443 laufen, aber bei dieser Konfiguration wird immer der Standard-Vhost bedient, egal was ich versucht habe.

Wenn jemand einen Hinweis zu Squid oder Apache hat, wäre ich äußerst dankbar.

verwandte Informationen