Tomcat mit SSL Verschlüsselung betreiben. | |
Wenn man Tomcat installiert, ist erstmal kein verschlüsselter Zugriff möglich.Um Tomcat mit SSL Verschlüsselung zu betreiben, benötigt man erst ein Zertifikat.
Dies kann ein selbst-signiertes oder ein offizielles Zertifikat sein. Das Zertifikat liegt dann vor als 3 Dateien
Diese Dateien kann man nun auf 2 Wegen in Tomcat importieren
|
|
Die Zertifikate erzeugen. | |
1. PKCS12 Zertifikat | |
openssl pkcs12 -export -out tomcat.pfx -inkey domian.irgendwas.key -in domian.irgendwas.crt -certfile ROOT_CA.pem Hierbei wird ein Passwort erfragt, welches später in der server.xml von Tomcat eingetragen werden muss. |
|
2. Java Keystore | |
Dieser Weg ist etwas komplizierter und man benötigt die genauen Informationen, die bei dem „certificate signing request“ angegeben wurden. keytool -genkey -alias domain.irgendwas -keyalg RSA -keystore tomcat.jks -keysize 2048 Bei diesem Schritt werden Informationen abgefragt, die identisch sein müssen zu denen, die bei dem CSR angegeben worden sind.Ebenfalls wird ein Passwort erfragt, welches später in der server.xml von Tomcat eingetragen werden muss. keytool -import -trustcacerts -alias root -file ROOT_CA.crt -keystore tomcat.jks ROOT_CA.crt ist das Zertifikat der Firma, die unser eigenes Zertifikat erstellt hat. Wenn man ein selbst signiertes Zertifikat hat, ist es jenes, welches im ersten Schritt mit openssl erzeugt wurde. Dies kann man testen mit: |
|
Die Zertifikate in Tomcat einrichten. | |
Jetzt hat man entweder ein Java Keystore File oder ein PKCS12 File.Das entsprechende File kopiert man nun, wenn man will, in den Tomcat conf Ordner. Es kann aber liegen, wo ihr wollt, dann muss aber der komplette Pfad eingetragen werden.
Als nächstes öffnet ihr die Datei server.xml unter %TOMCAT_HOME%/conf. Bzw. am besten erstmal ein backup dieser Datei machen. Ich beschreibe hier die Konfiguration, um den Standard Port 8080 auf HTTPS umzustellen. Aus meiner Sicht sollte gerade Tomcat, auf dem Webapplicationen laufen, an denen man sich normalerweise anmelden sollte, nicht unverschlüsselt laufen. Wenn man beide Möglichkeiten benötigt, einfach einen neuen Connector anlegen. Dazu sollte google euch genügend Hilfestellung bieten. |
|
server.xml für das PKCS12 Zertifikat | |
<Connector port=“8080″ protocol=“HTTP/1.1″ connectionTimeout=“20000″ redirectPort=“8443″
SSLEnabled=“true“ maxThreads=“150″ scheme=“https“ secure=“true“ clientAuth=“false“ sslProtocol=“TLS“ keystoreType=“PKCS12″ keystoreFile=“/pfad/zur/tomcat.pfx“ keypass=“********“ /> |
|
server.xml für den Java Keystore | |
<Connector port=“8080″ protocol=“HTTP/1.1″ connectionTimeout=“20000″ redirectPort=“8443″
SSLEnabled=“true“ maxThreads=“150″ scheme=“https“ secure=“true“ clientAuth=“false“ sslProtocol=“TLS“ keyAlias=“domain.irgendwas“ keystoreFile=“/pfad/zur/tomcat.jks“ keypass=“********“ /> |
|
Jetzt muss man Tomcat noch neu starten und dann klappt der Zugriff über https://domain.irgendwas:8080/WebApp. |