Inhaltsverzeichnis

Tomcat mit TLS-Zertifikat für JIRA einrichten

Soll JIRA im Tomcat mit einem TLS-Zertifikat betrieben werden, so ist an der Konfiguration von Tomcat einiges anzupassen. Dabei hilft ein Tool von Atlassian, das mit JIRA mitgeliefert wird. Benötigt wird dazu natürlich auch ein Zertifikat. Liegt noch kein Zertifikat vor, so ist zunächst ein CSR zu erstellen und dieses anschließend von einer CA zu signieren. Für Testzwecke kann auch eine eigene CA verwendet werden. Für einen Zugriff im öffentlichen Netz ist dies aber keine gute Idee, da alle Browser eigene CAs ablehnen und eine Warnung herausgeben. Eine gute Alternative sind die Zertifikate von Let's Encrypt. Diese sind kostenlos und einfach einzurichten. Mit einem automatischen Job werden diese sogar automatisch verlängert.

Umwandeln des Zertifikates in ein für Tomcat verwendbares Format

Damit Tomcat das TLS-Zertifikat einlesen kann muss es im JKS-Format vorliegen. Dazu wird das im X509-Format forliegende Zertifikat zunächst in das PKCS12-Format gewandelt und dann in einen JKS-Keystore importiert. Bei der Umwandlung in das PKCS12-Format ist unbedingt ien Passwort bei der Abfrage danach einzugeben. Mit einem leeren Passwort funktioniert der Import in einen JKS-Keystore im Anschluß nicht.

openssl pkcs12 -export -out oneCert.pkcs12 -in domain_certificate.pem -inkey private_key.pem

Nachdem nun ein PKCS12-Zertifikat vorliegt, kann es mittels keytool in einen JKS-Keystore umgewandelt werden.

$JAVA_HOME/bin/keytool -importkeystore -srckeystore oneCert.pkcs12 -srcstoretype PKCS12 -deststoretype JKS -keystore neuer_keystore.jks

Damit Tomcat auf das Zertifikat zugreifen kann brauchen wir noch einen Alias. Man könnte zwar auch den default-Alias „1“ verwenden, das führt aber leichter zu verwirrungen als ein sprechender Name.

$JAVA_HOME/bin/keytool -changealias -keystore neuer_keystore.jks -alias 1 -destalias tomcat

Prüfen kann man den Inhalt des neuen Keystores mit dem folgend Kommando.

$JAVA_HOME/bin/keytool -list -v -keystore neuer_keystore.jks

Serverkonfiguration des Tomcat anpassen

Zuerst ist die Konfigurationsdatei von Tomcat unter $JIRA_HOME/conf/server.xml zu sichern, da sie im folgenden überschrieben wird!

Hinweis: In diesen Beispielen ist JIRA_HOME das Verzeichnis, in dem JIRA installiert worden ist.

Starten des JIRA-Configurations-Tools wie unter https://confluence.atlassian.com/adminjiraserver073/running-jira-applications-over-ssl-or-https-861253906.html beschrieben:

$JIRA_HOME/bin/config.sh

Hier sind unter Web Server das Profile HTTP and HTTPs (redirect HTTP to HTTPs) auszuwählen und HTTP Port sowie HTTPs Port festzulegen. Dann ist der Keystore einzutragen (Absoluter Pfad!) und das Passwort für den Keystore sowie den Alias-Namen für das Zertifikat einzugeben. Durch das Speichern wird eine neue Datei $JIRA_HOME/conf/server.xml erzeugt. Die neuen Angaben zur TLS-Verschlüsselung befinden sich am Ende der Datei.

Hier fehlen aber noch einige Angaben zu den zu verwendenden Verschlüsselungsalgorithmen. Ohne diesen Eintrag verweigern die Browser den Zugang, da die Default Schlüssel zu schwach sind. Daher ist der neue Connector-Eintrag ganz am Ende der Datei um dieses Attribut zu ergänzen.

ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"

Wurde mit einer Test-CA signiert, dann muss vor dem Test noch das CA-Zertifikat in die Liste der vertrauenswürdigen Zertifizierungsstellen im Browser importiert werden. Anderenfalls kommt es zu einer Fehlermeldung, dass die Seite nicht sicher sei. Dieser Schritt entällt natürlich, wenn mit einem offiziellen Zertifikat gearbeitet wird.

Nun muss der Tomcat noch neu gestartet werden.

Sollte Der Server-Name für JIRA sich geändert haben, wird JIRA darauf hinweisen und anbieten die Konfiguration anzupassen - sofern man über die Administrator-Berechtigung verfügt.