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