PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tomcat + Anbindung Apache (inkl ssl) via mod_proxy



Blaubeere
07.09.05, 14:42
Hallo Leute,

ich bin neu hier und hab leider direkt ein großes Problem, welches ich mir auch leider nicht durch die Forensuche aus der Welt schaffen konnte. :(

Ich habe eine Teststellung (auf SuSE Enterprise Server 9 mit folgenden Eckdaten: Java-Version: 1.4.2 [enthalten in SuSE Destribution], Tomcat: 5.0.19 [enthalten in SuSE Destribution], Apache: 2.0.49 [enthalten in SuSE Destribution]) welche in sehr naher Zukunft Produktiv gehen soll. Dabei bin ich auf Probleme gestoßen.

Zur Situation (weiter unten eine Kurzzusammenfassung meines Problems):

Ich habe den Apache per mod_proxy (über mod_rewrite) mit dem Tomcat verbunden bzw. weitergeleitet, d.h habe ich unter conf.d/ eine Konfigurationsdatei tomcat.conf angelegt, nach folgendem Schema:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 1
RewriteRule ^/meins/a/b/(.*) http://localhost:8080/meins/a/b/$1 [P]
</IfModule>

In der server.xml habe ich folgende Connectors "aktiviert":

<Connector port="8082"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false"
acceptCount="100" debug="0" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />


<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />

Spreche ich nun den Server lokal an mit http://[Rechnername]/meins/a/b/ (also ohne httpS) an, funktioniert das anstandslos, ich kann die Anwendung ansprechen. Ich möchte jedoch httpS (ssl) nutzen. Hierfür habe ich im Apache 2 ein SSL Zertifikat eingebunden. Eine Seite im Apache läßt sich auch problemlos mit https://[Rechnername]/test/index.html ansprechen.

Nun möchte ich jedoch meine Anwendung im Tomcat mit SSL ansprechen. Hierfür ändere ich in meiner tomcat.conf Datei den Eintrag wie folgt ab:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 1
RewriteRule ^/meins/a/b/(.*) http://localhost:8443/meins/a/b/$1 [P] <----- geänderter Eintrag
</IfModule>

Ausserdem "aktiviere" ich in der Datei server.xml folgenden Connector:

<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />

Versuche ich nun meine Anwendung mit httpS://[Rechnername]/meins/a/b/ (also mit SSL) anzusprechen so funktioniert dies >> nicht <<, es kommt ein "Seite nicht gefunden Fehler". Ausserdem läßt sich der Tomcat nicht mehr sauber über die Shell beenden.


>> Zusammengefaßt <<

Ich habe einen Server mit:
- SUSE Enterprise Server 9
- Java-Version: 1.4.2 [enthalten in SuSE Destribution]
- Tomcat: 5.0.19 [enthalten in SuSE Destribution]
- Apache: 2.0.49 [enthalten in SuSE Destribution])

installiert.

Der Apache soll die SSL Anfragen annehmen (SSL Zertifikat habe ich im Apache eingebunden, wo dieses auch hin muss?!) und die Anfragen an den Tomcat (eine Anwendung dort) weiterleiten/durchreichen (wie gesagt via mod_proxy/mod_rewrite). Doch das klappt leider nicht.

Ich will niemanden von euch erschlagen, hoffe meine Ausführungen sind einigermaßen verständlich.

Danke und Gruß

Blaubeere

LKH
07.09.05, 17:47
Hi,

was mir auffällt (im Vergleich zu verfügbaren server.xml Dateien) ist, dass für den Connector auf Port 8443 der "keystoreFile"-Eintrag fehlt. Hattest du das Zertifikat in den Tomcat-Keystore importiert?

Ich glaube aber nicht, dass das dein Problem löst. ;)

LKH

Blaubeere
08.09.05, 08:40
Nein das löste mein Problem nicht, dies hab ich anderweitig hinbekommen. Das SSL Zertifikat wurde in den Apache eingebunden.

Zur Problemlösung:
Um eine Durchleitung zum Tomcat via httpS zu bekommen muss die Konfiguration anders als ich es oben getan habe durchgeführt werden.

Anstatt unter conf.d eine Datei mit den Rewrite Rules anzulegen muss stattdessen unter vhost ein VirtualHost mit dem vorliegenden ssl-Template erstellt werden. In der selben Datei werden dann die Rewrite Rules eingetragen.

Dann klappt es auch mit httpS. :)

Problem hat sich also gelöst.

Tomek
08.09.05, 10:46
Blaubeere: Bitte in Zukunft die CODE-Tags verwenden. Mehr dazu gibt es hier (http://www.linuxforen.de/forums/showthread.php?t=164474).