Jira Umstellung auf SSL unter Linux

Um Jira auf SSL umzustellen, benötigt man im Grunde nur ein valides SSL Zertifikat und muss eine Anpassung in der server.xml vornehmen.

Die nachfolgende Durchführung ist Linux bezogen.

Die Jira-Pfade lauten:

  • Java Home: /opt/atlassian/jira/jre/bin/keytool
  • Jira Home: /var/atlassian/application-data/jira
  • Jira Install: /opt/atlassian/jira/

Erstellen des SSL Zertifikat (selbst signiert)

Jira speichert die Zertifikate im eigenen Java Keystore.

/opt/atlassian/jira/jre/bin/keytool -genkey -alias jira -keyalg RSA -keystore /var/atlassian/application-data/jira/jira.jks

Hier wird anschließend das Passwort des Zertifikatsspeichers hinterlegt sowie die Informationen, welche im Zertifikat hinterlegt sein sollen.

Wer sein Zertifikat von einer CA signieren lassen will, findet hier weitere Infos.

Anschließend kann man verifizieren, dass das Zertifikat vorliegt:

/opt/atlassian/jira/jre/bin/keytool -list -alias jira -keystore /var/atlassian/application-data/jira/jira.jks

Der Eintrag sollen einen “PrivateKeyEntry” beinhalten.

jira, 17.02.2017, PrivateKeyEntry,
Zertifikat-Fingerprint (SHA1): FF:09:6F:4D:CA:B4:2D:D3:EF:F8:D9:CC:51:AA:66:F8:22:B9:97:CA

Tomcat Anpassungen (server.xml)

Die Konfiguration des Tomcat Webservers befindet sich in folgender Datei: <JIRA_INSTALL>/conf/server.xml

<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"
clientAuth="false" sslProtocol="TLS" useBodyEncodingForURI="true"
keyAlias="jira" keystoreFile="<JIRA_HOME>/jira.jks" keystorePass="changeit" keystoreType="JKS"/>

Anschließend kann Jira neu gestartet werden und die sichere Verbindung unter https://jira.domain.whatever:8443 abgerufen werden.

Anpassungen des ReverseProxys

Da Jira unter Linux nicht auf den bekannten http-Ports 80 und 443 laufen kann, wird im Normalfall ein Proxy vorgeschaltet.

Dieser muss für die neue Konfiguration angepasst werden:

<VirtualHost *:80>
ServerName jira.domain.de
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ServerName jira.domain.de

ErrorDocument 502 /502/index.html
ErrorDocument 503 /503/index.html

SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/myssl/cert.pem
SSLCertificateKeyFile /etc/myssl/cert.key
SSLCertificateChainFile /etc/myssl/intermediate.crt

ProxyPreserveHost on
ProxyPass /503 !
ProxyPass /502 !
<Location />
Deny from all
Allow from 172.30
ProxyPass https://172.30.18.51:8443/
ProxyPassReverse https://172.30.18.51:8443/
</Location>
<Location /servicedesk>
ProxyPass https://172.30.18.51:8443/servicedesk
ProxyPassReverse https://172.30.18.51:8443/servicedesk
</Location>
</VirtualHost>

Die HTTP-Verbindungen werden mit o.g. Konfiguration auf HTTPS umgeleitet, sodass kein direkter, unverschlüsselter Zugriff mehr möglich ist. Ebenfalls werden eigene Error-Dokumente für die Fehler 502 und 503 hinterlegt, welche direkt auf dem Proxy liegen und daher nicht umgeleitet werden sollen. In meinem Fall wird der Zugriff auf die Haupt-Jira-Instanz nur aus einem bestimmten IP-Subnet zugelassen. Die Servicedesk-Seiten sollen allerdings von überall aus erreichbar sein.

Apache Dienst neustarten und fertig.

Advertisements

2 thoughts on “Jira Umstellung auf SSL unter Linux

  1. Hallo grüß dich!

    Erstmal vielen Dank für dein Howto. Ich selber bin noch nicht so recht vertraut mit der Materie, man hat mich ins kalte Wasser geschmissen: mach mal.

    Hast du den Proxy auf der selben Maschine laufen wir Jira? Gibts Vor- und Nachteile den separat zu hosten?

    Like

    • Moin,
      also es kommt drauf an, ob du schon einen Reverseproxy hast, den du nutzen kannst. Dann würde ich das auf einem separaten Server machen.
      Wenn du aber nur für den Jira Server einen Proxy brauchst, dann würde ich es auf ihm selbst machen. Das verringert die Komplexität ein bisschen.
      Aber man kann es später ja immer noch anpassen, sollte sich der Bedarf ändern.
      Grüße

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s