Advanced   Java   Services https mit Tomcat Back Next Up Home


https mit Tomcat

Eine einfache SSL-Konfiguration ist für Tomcat überraschend schnell durchzuführen. Natürlich ist es nur eine Testkonfiguration und entspricht nicht einer realen Situation. Eine sichere Verbindung kann nur über ein Zertifikat aufgebaut werden. In diesem Fall zertifizieren wir uns selbst und das geht eben nur zur testzewcken.


Zertifikat erstellen mit keytool

Java SE kommt mit einem kleinen Werkzeug mit dem Namen keytool. Mit Hilfe dieser Konsolanwendung kann man sich ein Zertifikat erstellen. Das Zertifikat ist eine Datei mit dem Namen .keystore, die man Tomcat in der Konfigurationsdatei server.xml bekanntgeben muß.

Der einfachste Aufruf ist der folgende:

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA

Im obigen Fall wird die Datei ins user-Verzeichnis von Dokumente und Einstellungen gelegt. Will man sie gleich in ein bestimmtes Verzeichnis legen, so kann man den folgenden Aufruf verwenden:

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA -keystore \path\to\my\keystore

Der folgende Screenshot zeigt die Eingaben, die keytool verlangt.

keytool.jpg

Das Standardkeyword ist changeit. Man kann ohne weiteres immer dasselbe Kennwort eingeben.


server.xml konfigurieren

Wenn man die Datei .keystore in das Verzeichnis seiner Wahl gelegt hat, öffnet man die Datei server.xml und sucht den (auskommentierten) Eintrag Define a SSL HTTP/1.1 Connector on port 8443. Man ändert den Eintrag wie folgt ab:

    <!-- Define a SSL HTTP/1.1 Connector on port 8443
         This connector uses the JSSE configuration, when using APR, the
         connector should be using the OpenSSL style configuration
         described in the APR documentation -->

<!-- Define a non-blocking Java SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector port="7443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               keystoreFile="c:/server/Tomcat/conf/.keystore" keystorePass="changeit"
               clientAuth="false" sslProtocol="TLS" />

das Protokoll org.apache.coyote.http11.Http11NioProtocol ist ein nichtblockierendes Protokoll. Stattdessen kann man auch mit dem blockierenden Protokoll org.apache.coyote.http11.Http11Protocol arbeiten.

Weitere Information findet man unter ssl-howto.html.


Aufruf mit Firefox

Im gegensatz zum InternetExplorer gibt Firefox deutliche Warnhinweise.

firefox-ssl-1.jpg

firefox-ssl-2.jpg

firefox-ssl-3.jpg

Valid XHTML 1.0 Strict top Back Next Up Home