SSL Offloading für den SMC Server

Um den Sophos Mobile Control (SMC) Server für Hochverfügbarkeitsszenarien hinter einem Loadbalancer mit SSL Offloading betreiben zu können sind Änderungen am JBOSS Server notwendig.
Dieser leitet in der Standardinstallation alle Aufrufe an Port 80 (HTTP) direkt auf eine gesicherte HTTPS Verbindung auf Port 443 weiter. Aktiviert man nun SSL Offloading so wird man nie eine (sichtbare) Antwort im Browser erhalten.
Der JBOSS muss die Seiten auch über unverschlüsseltes HTTP ausliefern. Hierzu muss im Verzeichnis  
C:\Program Files (x86)\Sophos\Sophos Mobile Control\jboss\server\mdm\deploy\jboss-web.deployer 
  in der Datei  
server.xml
  nach dem Connector für Port 80 gesucht werden. Dieser ist entsprechend dem unten stehenden Konfigurationsschnipsel zu ergänzen/ ändern:  
...
      <Connector port="80" address="${jboss.bind.address}"     
       maxThreads="500" strategy="ms" maxHttpHeaderSize="8192"
            emptySessionPath="true" protocol="HTTP/1.1"
            enableLookups="false" acceptCount="100"
            connectionTimeout="20000" disableUploadTimeout="true" server="server"
            compression="on" scheme="https" secure="true" proxyName="SSL_PROXY" proxyPort="443"
            compressionMinSize="512"
            noCompressionUserAgents="gozilla, traviata"
            compressableMimeType="text/css,text/html,text/javascript,application/x-javascript,application/javascript,text/xml,image/gif"
            maxSavePostSize="-1"
         />
...
 
SSL_PROXY ist hierbei die offizielle URL des Sophos Mobile Control Servers (z.B. mobilecontrol.bayreuth.tk). Die Anpassung ist selbstverständlich auf allen beteiligten SMC Servern durchzuführen. Nach einem Neustart des Dienstes liefert der SMC Server nun unverschlüsselte Seiten auf Port 80 aus. Der Zugriff klappt nun durch den SSL Proxy problemlos.

HAProxy mit SSL offloading

Seit der Version 1.5 kann der HAProxy auch als Endpunkt für SSL gesicherte Verbindungen dienen und ermöglicht somit SSL Offloading. Hierbei wird das Zertifikat der HTTPS- Website nur einmal am Proxy hinterlegt; dieser "entschlüsselt" dann die Anfrage und leitet den Aufruf als regulären unverschlüsselten HTTP- Request an die dahinterliegenden Webserver weiter.

Der relevante Ausschnitt aus der Konfiguration eines HAProxies sieht hierzu in etwa wie folgt aus:

 
frontend SMCSync
        mode http
        bind 172.317.6.433:4430 ssl crt /etc/haproxy-certs/cert.pem
        default_backend SMCSync
   
backend SMCSync
        balance roundrobin
        server smcserver1 172.317.6.431:80
        server smcserver2 172.317.6.432:80
  Nachdem alle beteiligten Komponenten entsprechend angepasst sind ist die Erreichbarkeit durch den SSL Proxy nun kein Problem mehr. ABER: Über eine interne URL ist der Zugriff nun nur noch durch explizite Angabe von https:// in der URL möglich.