Apache HTTPD als reverse proxy mit SSL

Timmey92

Commodore
Registriert
Okt. 2008
Beiträge
4.568
Moin,

wie der Titel schon sagt will ich einen Apache HTTPD als Frontend Server für viele Tomcat Instanzen (bis zu 30 Stk.) aufsetzen.
Das klappt auch soweit ganz gut mit folgenden VirtualHost Settings:


Code:
<VirtualHost _default_:80>
DocumentRoot "${SRVROOT}/htdocs"
ProxyRequests     off 
ProxyPreserveHost on
ProxyPassReverseCookieDomain localhost another-domain.com
#ProxyPass /static.htm !
ProxyPass /xxx/ http://localhost:8080/ 
ProxyPassReverse /xxx/ http://localhost:8080/

#ServerName www.example.com:80

</VirtualHost>

Was jetzt nicht klappt, ist darauf mit https:// zuzugreifen. Zertifikat und Private Key sind hinterlegt und ich kann auch die Standard Apache Startseite damit aufrufen, allerdings greifen meine Proxy Settings nicht (nach ein paar Stunden Schlaf auch logisch: ich muss die Proxy Regeln im 443er VHost auch definieren...)

Code:
<VirtualHost _default_:443>
  SSLEngine on
  ServerName localhost:443
  SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
  DocumentRoot "${SRVROOT}/htdocs"
# DocumentRoot access handled globally in httpd.conf
	CustomLog "${SRVROOT}/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
	<Directory "${SRVROOT}/htdocs">
		Options Indexes Includes FollowSymLinks
		AllowOverride AuthConfig Limit FileInfo
    Require all granted
	</Directory>
</virtualhost>

Wie bekomme ich es hin, dass ich die Proxy Regeln nur in einem der beiden Vhosts definieren muss?

Danke im voraus :)
 
Wir haben unsere Tomcats via AJP1.3 und mod_jk angebunden, das läuft problemlos mit SSL. Oder kommt das nicht infrage?
 
Hab es jetzt auf AJP umgestellt, allerdings habe ich immer noch das Problem, dass auf Port 80 der Proxy macht was er soll und auf Port 443 nicht ... wie sieht deine Proxy Config aus, wenn ich fragen darf?
 
Unser Server macht bei allen Port 80 requests einen redirect auf 443. Ich schau mal eben in die Config...

Wir haben da ein paar conf files kombiniert, aber ich denke das wichtigste Stück ist das hier:

Code:
<VirtualHost SERVER_IP:80>
        ServerName      foo.de
        ServerAlias     www.foo.de
        Redirect permanent      /       https://www.foo.de/
</VirtualHost>

<VirtualHost SERVER_IP:443>
        ServerAlias     foo.de
        ServerAlias     www.foo.de

        Include         /etc/apache2/sites-enabled/100-foo.de-common.conf

        SSLEngine       On
        SSLCACertificateFile    /etc/ssl/private/Intermediate_CA_Bundle.crt
        SSLCertificateFile      /etc/ssl/private/foo.de.crt
        SSLCertificateKeyFile   /etc/ssl/private/foo.de.key
</VirtualHost>

und dann die 100-foo.de-common.conf mit den JkMount Anweisungen, die auf 'nen lokalen Tomcat verweisen.
 
Zuletzt bearbeitet:
Danke dir, hab das jetzt einfach so gelöst, auf dem 443er Port einen reverse Proxy Eintrag für den http Port zu machen ...

ProxyPass / http://localhost
ProxyPassReverse / http://localhost
 
Klingt zwar ungewöhnlich, aber hauptsache es funktioniert :)
 
Zurück
Oben