- Angelegt von //SEIBERT/MEDIA Employee, zuletzt geändert am Mär 20, 2018
Atlassian-Applikationen erlauben die Verwendung von SSL innerhalb der Atlassian-Produkte, jedoch bietet der Atlassian Support keine Hilfe bei dessen Konfiguration an. Das heißt Atlassian kann keine Unterstützung dafür garantieren.
- Wenn Sie Hilfe bei der Umwandlung von Zertifikaten benötigen, konsultieren Sie bitte den Verkäufer, der Ihnen das Zertifikat verschafft hat.
- Wenn Sie Hilfe bei der Konfiguration benötigen, erstellen Sie bitte eine Frage im Atlassian Answers Portal.
Warum Sie den HTTPS-Zugriff auf Crowd aktivieren sollten?
Beim Zugriff auf Web-Anwendungen über das Internet besteht immer die Gefahr, dass Mittelsmänner die Benutzernamen und Passwörter abfangen. HTTPS ist eine gute Möglichkeit Ihre Crowd-Daten und -Benutzerlogins davor zu schützen, von Außenstehenden abgefangen und gelesen zu werden.
Crowd über HTTPS benutzen
Der Aktivierungsvorgang für den HTTPS-Zugriff ist je nach Applikationsserver spezifisch, aber die Definition, welche Seiten Schutz benötigen ist generisch. Unten beschreiben wir die Vorgehensweise für Tomcat, dem Applikationsserver, der mit Crowd gebündelt kommt.
1. Schritt: Aktivieren Sie den Tomcat HTTPS-Zugriff
Editieren Sie die <crowd installation>/apache-tomcat/conf/server.xml und fügen Sie unten vor dem </Service>
Tag (nicht zu verwechseln mit dem </Server> Tag!) diesen Abschnitt ein (oder entfernen Sie die Kommentarzeichen, falls schon vorhanden):
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="${user.home}/.keystore" keystorePass="changeit" keyAlias="tomcat" keyPass="changeit"/>
Dies aktiviert den SSL-Zugriff auf dem Port 8443 (der Standard für HTTPS ist 443, aber ebenso wie Tomcat 8080 anstatt 80 verwendet, um Konflikte zu vermeiden, wird hier 8443 anstatt 443 verwendet). Sie müssen womöglich die Werte von "keystoreFile", "keystorePass" und "keyPass" Ihren Zertifikaten und Ihres Set-Ups entsprechend ändern.
2. Schritt: Erstellen oder importieren Sie Ihren SSL-Schlüssel (selbstsigniert oder von einer CA ausgestellt)
Sie können entweder einen selbstsignierten SSL-Schlüssel erstellen oder SSL-Schlüssel importieren, der von einer Certificate Authority (CA) ausgestellt wurde. Wir beschreiben unten beide Methoden.
Die Erstellung eines selbstsignierten SSL-Schlüssels
Mit einem der folgenden Befehle können Sie einen selbstsignierten Schlüssel für Testzwecke erstellen:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows) $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix / Mac OS)
Wenn Sie nach dem Vor- und Nachnamen gefragt werden, geben Sie stattdessen den Hostnamen des Crowd Servers ein, z. B.:
What is your first and last name? [Unknown]: localhost
Das Keytool Utility wird Sie nach zwei Passwörtern fragen: dem Keystore-Passwort und dem Schlüssel-Passwort für Tomcat. Sie können entweder:
- "changeit" eingeben (das ist der Standardwert, den Tomcat erwartet), oder
- Jeden anderen Wert als "changeit" eingeben und diesen müssen Sie ebenfalls als Wert von "keystorePass" in der conf/server.xml definieren.
Dann müssen Sie Ihr Zertifikat in den Truststore importieren:
Exportieren Sie zunächst den Schlüssel, den Sie zu einer Datei generiert haben:
$JAVA_HOME/bin/keytool -export -alias tomcat -file tomcat.cert
Importieren Sie den Schlüssel in den JRE-Keystore (für diesen Keystore benötigen Sie Schreibrechte und eventuell höhere Privilegien):
$JAVA_HOME/bin/keytool -import -alias tomcat -file tomcat.cert -keystore $JAVA_HOME/jre/lib/security/cacerts
Import eines Zertifikats von einer CA
Bei der Verwendung von Zertifikaten, die von einer Certificate Authority ausgestellt wurden, müssen Sie die Zertifikate mithilfe des Keytool-Befehls importieren, anstatt einen selbstsignierten Schlüssel zu erstellen.
Hier ist ein Beispiel dieses Befehls:
keytool -import -alias tomcat -file certificate.cer -keystore some/path/to/file -storepass something.secure
"-file" ist Ihr Zertifikat und "-keystore" ist ein optionaler Bestimmungsort, aber es garantiert, dass Sie wissen, wo sich Ihr Keystore befindet. Standardmäßig ist der Keystore in Ihrem Benutzer Home-Verzeichnis. Sie können für weitere Informationen über das Keytool die folgende Oracle Dokumentation lesen:
Editieren Sie nun die server.xml, wie im Abschnitt "Edit the Tomcat Configuration File" der Apache Tomcat Dokumentation. Grundsätzlich müssen Sie "keystoreFile" und "keystorePass" zur SSL-Verbindungsdefinition hinzufügen, damit Ihre Keystore-Einstellungen übereinstimmen.
Starten Sie nun Ihre Crowd-Instanz (ggf. neu). Sie sollten in der Lage über diese URL auf Crowd zuzugreifen: https://localhost:8443/crowd/console
Fehlerbehebung
Hier sind einige Tipps zur Fehlerbehebung, wenn Sie einen selbstsignierten, von Keytool erstellten Schlüssel haben, so wie oben beschrieben.
Wenn Sie "https://localhost:8443" in Ihrem Browser eingeben und eine Nachricht wie "Cannot establish a connection to the server at localhost:8443", sehen Sie nach Fehlermeldungen in Ihrer logs/catalina.out Log-Datei. Hier sind einige mögliche Fehler mit den dazugehörigen Erklärungen:
Der Keystore kann nicht gefunden werden
java.io.FileNotFoundException: /home/<username>/.keystore (No such file or directory)
Dies deutet darauf hin, dass Tomcat den Keystore nicht finden kann. Das Keytool-Utility erstellt den Keystore als Datei namens ".keystore" im aktuellen Benutzer Home Verzeichnis. Für Unix/Linux ist das Home Verzeichnis dieses: /home/<username>. Für Windows ist es dieses: C:\Documents And Settings\<UserName>.
Stellen Sie sicher, dass Sie Crowd mit demselben Benutzer betreiben, mit dem der Keystore erstellt wurde. Ist das nicht der Fall oder betreiben Sie Crowd als Dienst auf Windows, müssen Sie in der conf/server.xml definieren wo die Keystore-Datei ist. Fügen Sie das folgende Attribut zum Konnektor-Tag hinzu, bei dem Sie die Kommentarzeichen entfernt haben: keystoreFile="<location of keystore file>".
Falsches Passwort
java.io.IOException: Keystore was tampered with, or password was incorrect
Sie benutzten ein anderes Passwort als "changeit". Sie müssen entweder "changeit" als Passwort für den Keystore und den Schlüssel für Tomcat verwenden oder, wenn Sie ein anderes Passwort verwenden wollen, müssen Sie es mithilfe des "keystorePass" Attributs des Konnektor-Tags definieren, wie oben beschrieben.
Die Passwörter stimmen nicht überein
java.io.IOException: Cannot recover key
Sie haben ein anderes Passwört für den Keystore definiert als beim Schlüssel für Tomcat. Beide Passwörter müssen gleich sein.
Um mehr über die Optionen herauszufinden, die Tomcat bietet, sehen Sie sich bitte die Apache Tomcat Dokumentation an.
SSL zwischen dem LDAP-Server und Crowd verwenden
Microsoft Active Directory Konnektor mit einem SSL-Zertifikat
Bitte beziehen Sie sich auf die Dokumentation über die Konfiguration eines SSL-Zertifikats für Microsoft Active Directory.
Andere LDAP-Server
Für andere LDAP-Server konsultieren Sie bitte Ihre LDAP-Server Dokumentation.
Auf der Crowd-Seite haben Sie bei der Konfiguration der Konnektor-Einstellungen eine einfache "Secure SSL" Checkbox, die Sie auswählen müssen, damit sichergestellt wird, dass der korrekte Port im "URL" Feld verwendet wird (normalerweise 636).