SSL in Tomcat 5.5.26

T

Tim_Tux

Mitglied
Hallo,

ich möchte in Tomcat 5.5 den SSL Connector aktivieren. Nötig geworden ist es, da kein Apache mehr vorgeschaltet wird.
Nun habe ich das eigenartige Problem, dass ich nicht einmal die Tomcat Splah Page auf Port 8443 zu sehen bekomme.
Ich bin folgendermaßen vorgegangen:
1.) Erstellen des keystore mit dem Java-Tool
2.) Auskommentieren des Connectors in der server.xml.

Das keystore-file liegt also im Homeverzeichnis des users, unter dem der Server läuft. Weiterhin habe ich das Standardpasswort "changeit" noch benutzt und sowohl das Passwort als auch den Pfad zusätzlich in der server.xml angegeben (keystoreFile="..." keystorePass="changeit").

Der redirectPort des non-SSL Connectors entspricht dem Port des SSL-Connectors.

Das sollte doch eigentlich eine simple und kurze Konfiguration sein, trotzdem meldet der Browser, er könne keine Verbindung zum Server (https://localhost:8443) aufbauen.

Was mache ich nur falsch?:hilfe2:
 
Lauscht denn der Tomcat auch wirklich auf 8443?

Was sagt

Code:
netstat -tulpen | grep  8443

?

Irgendwelche Fehlermeldungen in der catalina.out?
 
Er lauscht gar nicht auf Port 8443, das erklärt einiges.
Die catalina.out protokolliert nichts zu den Fehlzugriffen, aber das geht ja auch schlecht, wenn erst gar kein Verbindung zustande kommt.

Jetzt bin ich ziemlich ratlos, warum er nicht lauscht. Vielleicht liegt es doch in der server.xml?

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

!-- Define a SSL HTTP/1.1 Connector on port 8443 -->

<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="$CATALINA_HOME/ssl/.kesytore" keystorePass="changeit" />

Die .keystore-Datei ist mittlerweile in den oben angebenen Ort umgezogen, liegt also wirklich dort.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

In die catalina.out wurde gar nicht mehr geschrieben, so dass ich die Datei gelöscht habe. Nun schreibt der tomcat wieder fleißig rein und der relevante Fehler dürfte hier liegen:

SEVERE: Error starting endpoint
java.io.IOException: SunX509 KeyManagerFactory not available
 
Zuletzt bearbeitet:
Ok,

wenn du nur mal nach

java.io.IOException: SunX509 KeyManagerFactory not available

googelst, kriegst du schon mal sehr viele Hinweise.

Schuß ins Blaue:

Welche Java-Version hast du installiert?
Ich vermute mal nicht die von Sun.....
 
Den Rechner habe ich nicht eingerichtet, aber java -version spuckt nichts von Sun aus:

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pxi32devifx-20071025 (SR6b))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20071005 (JIT enabled)
J9VM - 20071004_14218_lHdSMR
JIT - 20070820_1846ifx1_r8
GC - 200708_10)
JCL - 20071025

Dein Schuss könnte getroffen haben!?
 
Den Rechner habe ich nicht eingerichtet, aber java -version spuckt nichts von Sun aus:

Zitat:
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pxi32devifx-20071025 (SR6b))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20071005 (JIT enabled)
J9VM - 20071004_14218_lHdSMR
JIT - 20070820_1846ifx1_r8
GC - 200708_10)
JCL - 20071025
Dein Schuss könnte getroffen haben!?

Yep, hat er.......:devil:

Ich würde dir empfehlen, die IBM-Variante zu deinstallieren und die Java Runtime Environment von Sun zu nehmen.

Der Fehler

java.io.IOException: SunX509 KeyManagerFactory not available

wird damit behoben sein.

P.S.: Frag mal den Admin, warum er im Jahr 2008 noch die Implementierung von IBM installiert hat.

Da würde mir nämlich kein (ausreichend) guter Grund einfallen.

P.P.S: Welche Distribution? Laß mich raten: SLES 9?
 
Da hatte er aber einen super Riecher, vielen Dank :-) Es handelt sich um ein SLES10 und ein guter Grund für die IBM-Version ist nicht ersichtlich.
Ich würde mal vermuten, dass "java-1_5_0-ibm" das Standardpaket für Java unter SLES10 ist.
 
Hi folks,

also ich habe dasselbe Problem, allerdings fällt mir ein sehr guter Grund dafür ein (und ich bin froh, dass dies hier ein Unix und nicht Linux Board ist).

Ich hab hier eine AIX rumstehen, auf der der Tomcat laufen soll, allerdings läuft auf der schnuckeligen AIX nur die IBM Java Version, soweit ich weiss...

Also es wäre toll wenn der Fall nochmal aufgerollt werden würde. Ich wäre für jede Lösung dankbar.

(Und nein, das Ding aus dem Fenster werfen ist leider keine Lösung)

Gruss
shuggy
 
Dürfte schwierig, wenn nicht gar unmöglich werden.

Ich fürchte, da wirst du dich mal wirklich tief in die Tomcat Dokumentation einarbeiten müssen.

Vermutlich wird man irgendwo einstellen können, welche SSL-Implementierungen er verwendet.

Aber frag mich jetzt nicht wo man das einstellen kann.....
 
Dank dir auf jedenfall für die schnelle Antwort,

ich hatte mir sowas fast gedacht, toll ist nur, wenn man den Auftrag bekommt und es eigentlich schon bis gestern fertig sein sollte :)

Wenn ich was gefunden hab, lass ichs euch wissen...

Gruss
shuggy
 
Vielleicht kann man das Problem ja von der anderen Seite angehen:

in der "java.security" befindet sich ein Abschnitt, der etwa so aussieht:
Code:
# Determines the default key and trust manager factory algorithms for
# the javax.net.ssl package.
#
ssl.KeyManagerFactory.algorithm=SunX509
ssl.TrustManagerFactory.algorithm=PKIX

Bei Dir wird dort eben ein anderer Algorithmus eingetragen sein. Vielleicht ist ja trotzdem möglich, den SunX509 beim IBM-Java verfügbar zu machen.

Schöner wäre es freilich, das Problem am Tomcat selbst zu lösen und nicht in der java.security rumzuwurschteln.
 
in der Not ergreift man ja jeden Strohhalm...

das funktioniert leider nicht, ich bekomme zwar keinen Fehler mehr, aber auch keinen SSL Handshake ;)

Ich werd mich übers WE mal in die Container/Connector einlesen, das scheint sehr vielversprechend zu sein :)

So long
shuggy
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Noch ein kleiner Nachtrag.

in der server.xml beim Tomcat gibt es ein algorithm Attribut, welches per default auf SunX509 steht.

Ich habe es auf IbmX509 gesetzt und bekomme jetzt wieder keinen Fehler mehr. Der Socket horcht lieb auf 8443, jedoch kommt noch keine richtige Verbindung zustande.

Stay tuned for more happy days...
 
Zuletzt bearbeitet:
Das ganze funktioniert, wenn man wie in der tomcat-ssl-doku angegeben in der server.xml für den SSL Connector

<Connector port="8443" algorithm="IbmX509" .... />

einträgt.
 

Ähnliche Themen

Tomcat6 startet nicht

Pure-ftpd mit Postgre

Anleitung: Howto: OpenSUSE 10, XDMCP und Cygwin als Thin-Client

Zurück
Oben