Apache SSL Proxy


Konfiguration des Apache2 als SSL Proxy, um den SSL Handshake, der bis zu einer Sekunde dauern kann, ein zu sparen. Das Setup ist dann so aufgebaut, das aus dem lokalem Netz Zugriffe nicht mehr direkt gegen den Zielserver per https ausgeführt werden, sondern alle Zugriffe gegen den Zielserver werden auf den Proxy ausgeführt.

Dazu werden erst die nötigen Pakete installiert und der apache konfiguriert.

Zusätzlich wird mod_status konfiguriert, um die Funktionsweise bzw. die Nutzung prüfen zu können.

apt-get install libapache2-mod-proxy-html

/usr/sbin/a2enmod proxy_html
/usr/sbin/a2enmod proxy
/usr/sbin/a2enmod proxy_http
/usr/sbin/a2enmod ssl

Jetzt ist apache installiert und die relevanten Module sind aktiviert.

Die folgende Konfiguration in /etc/apache2/conf.d/status aktiviert die Statusseite auf Port 8081.


    ProxyStatus on
    ServerAdmin me@example.com
    DocumentRoot /var/www/html/example.com
    ServerName example.com
    ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
    
        SetHandler server-status
        Order allow,deny
        Deny from all
        Allow from example.com 
    

Nach einem Apache Restart ist diese Seite unter http://SERVER:8081 erreichbar.

Die eigentliche Proxy Konfiguration findet in /etc/apache2/sites-available/default statt.

Dies ersetzt die normale Apache Webserver Funktionalität. Anstelle den Inhalt von der Datei zu ersetzen könnte eine neue Datei angelegt werden, dann funktioniert beides auch parallel. Unter VirtualHost ist im folgendem eine Portnummer eingetragen, unter dieser steht der SSL Proxy dann zur Verfügung.

 

  
	ServerAdmin webmaster@localhost
        SSLProxyEngine On
        ProxyPass / https://ZIELHOST min=50 max=500 keepalive=on connectiontimeout=5 timeout=30 ttl=300
        proxytimeout 300
        timeout 300 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined