Analog zu SSL für Apache werden drei Schritte benötigt,
- Generieren eines privaten Keys
- Erzeugen eines Zertifizierungs-Request
- Erzeugen des Zertifikates
Um Unterschied zu Apache werden für Tomcat die Schlüssel auf Java-Art in einerm Datei-Container gespeichert, dem "Keystore". In der Tomcat-Konfiguration in der Datei ./conf/server.xml wird ein Connector für einen TCP-Port eingerichtet, in dem die SSL-Engine eingeschaltet und auf den erzeugten Keystore verwiesen wird.
Im Beispiel sieht das dann so aus:
Erzeugen des Keystores:
# Datei keystore_server1mit Private Key erzeugen
keytool -v -genkey -alias MeinServer1 -dname "CN=meinserver1.example.com,OU=IT,O=Meine Organisation,ST=Nordrhein-Westfalen,L=Detmold,C=DE" \
-keyalg rsa -keystore keystore_server1 -storepass Geheim123 -keysize 2048
# Zertifikat-Request erzeugen und als Datei keystore_server1.csr abspeichern
keytool -v -certreq -keystore keystore_server1 -storepass Geheim123 -file keystore_server1.csr -alias MeinServer1 -keyalg RSA
# Bei einer externen Zertifizierungsstelle das Zertifikat mit dem Request-File erzeugen lassen.
# Im Notfall oder zum Test geht es auch selbst mit openssl:
openssl genrsa -out privatekey.pem 2048
openssl x509 -req -days 3650 -in keystore_server1.csr -signkey privatekey.pem -out certificate-server1.pem
# Das erzeugte Zertifikat in den Keystore importieren:
keytool -v -import -alias root -keystore keystore_sserver1 -storepass Geheim123 -trustcacerts -file certificate-server1.pem
In der Konfigurationsdatei des Tomcat wurd dann in folgender Weise der Connector eingerichtet:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxHttpHeaderSize="8192" SSLEnabled="true"
maxThreads="150" minSpareThreads="25"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
keystoreFile="/opt/ssl/keystore_server1" keystorePass="Geheim123"
clientAuth="false" sslProtocol="TLS" useBodyEncodingForURI="true"/>
Beim Start des Tomcat sollte auf die Ausgabe der catalina.out geachtet werden, um eventuelle Fehler erkennen zu können. Wenn alles stimmt, kann der Tomcat Server unter der URL "https://meinserver1.example.com:8443" zu erreichen sein.