SuperX

KontaktMail für InfosSuchenLogin

SSL im Tomcat

Wenn Sie nicht die Möglichkeit die Verschlüsselung vom Webserver (Apache oder IIS) nutzen wollen, können Sie auch direkt im Tomcat verschlüsseln. Im folgenden eine Anleitung, wenn kein öffentlich bekanntes und signiertes Zertifikat genutzt werden soll. Große Teile wurden übernommen aus der Tomcat Dokumentation "ssl-howto.html".

Erzeugen Sie zunächst auf dem Applikationsserver einen Keystore mit dem Befehl

Windows:

%JAVA_HOME%binkeytool -genkey -alias tomcat -keyalg RSA

UNIX:

$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA

Die Parameter werden erfragt; wichtig ist, dass der erste Eintrag (Vor- und Nachname, COMMON NAME CN) der DNS-Name des Werbservers ist, z.B. superx.verwaltung.uni-duisburg.de. Als Passwort geben Sie beide Male z.B. "changeit" an (das ist nur ein Beispielpasswort für die Dokumentation, natürlich sollten Sie das Passwort ändern). Daraufhin wird ein Zertifikat erzeugt und in der Datei .keystore im Homeverzeichnis des Benutzers angelegt (unter Windows im Profiles-Verzeichnis, unter UNIX im home-Verzeichnis).

Das persönliche Zertifikat können Sie durch einen kommerziellen Zertifizierungsserver publizieren; zu Testzwecken können Sie auch ein selbsterstelltes Zertifikat erzeugen:

keytool -selfcert -alias tomcat -validity -Anzahl der Tage-

Danach ändern Sie die Datei $TOMCAT_HOME/conf/server.xml, indem Sie die Passage mit der SSL-Verschlüsselung (z.B. 8443) ent-kommentieren und den normalen Port (8080) auskommentieren.

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass="changeit" keystoreFile="/home/superx/.keystore"
/>

Danach ist die Webanwendung über https://localhost:8443 statt http://localhost:8080 erreichbar. Sie müssen alle Links entsprechend ändern.

Das Zertifikat können Sie löschen, indem Sie auf der Kommandozeile eingeben:

keytool -delete -alias tomcat