Hallo,
ich versuchen einen Apache2 als transparenten reverse proxy zu konfigurieren.
Anstelle des Zertifikats des Zielservers hinter dem Proxy liefert der Proxy sein eigenes SSL Zertifikat aus. Das führt im Browser der Clients natürlich zu einem Zertifkatsfehler.
Code:
# cat /etc/apache2/sites-enabled/https.prx.conf
# HTTP (Port 80)
<VirtualHost *:80>
ServerName xxx.net
ServerAlias www.xxx.net
# Behalte den ursprünglichen Host-Header (xxx.net) bei
ProxyPreserveHost On
# ProxyRequests Off
# <Proxy *>
# Order deny,allow
# Allow from all
# </Proxy>
ProxyPass / http://100.77.88.110:80/
# ProxyPass / http://xxx.net:80/
ProxyPassReverse / http://100.77.88.110:80/
# ProxyPassReverse / http://xxx.net:80/
# <Location />
# Order allow,deny
# Allow from all
# </Location>
</VirtualHost>
# HTTPS (Port 443)
<VirtualHost *:443>
ServerName xxx.net
ServerAlias www.xxx.net
# Keine SSL-Konfiguration auf dem Proxy-Server notwendig
# Die SSL-Verbindung wird direkt zum Zielserver weitergeleitet
# SSLProxyEngine aktivieren, damit SSL über den Proxy durchgereicht wird
SSLEngine Off
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire Off
# Behalte den ursprünglichen Host-Header (xxx.net) bei
ProxyPreserveHost On
# ProxyRequests Off
# <Proxy *>
# Order deny,allow
# Allow from all
# </Proxy>
ProxyPass / https://100.77.88.110:443/
ProxyPassReverse / https://100.77.88.110:443/
# <Location />
# Order allow,deny
# Allow from all
# </Location>
</VirtualHost>
Wenn ich den Zielserver direkt mit
Code:
openssl s_client -connect 100.77.88.110:443 -servername xxx.net
wird das richtige Zertifikat ausgeliefert.
Was übersehe ich?
Lesezeichen