Tomcat/Java SSL Zertifikat Importieren #
In einigen Fällen ist es notwendig, ein SSL-Zertifikat im Java Truststore zu importieren.
Anwendungsbeispiel: Sie möchten die Applikation mit LDAP verbinden und verwenden eine LDAP-SSL-Verbindung. Eine verschlüsselte Verbindung ist ohne ein SSL-Zertifikat nicht möglich. Für diesen Vorgang muss das SSL-Zertifikat in den default Truststore von Java importiert werden.
Der default Keystore befindet sich im Java-Verzeichnis unter:
Linux: /lib/security/cacerts
Linux alternativ-Pfad: /usr/lib/jvm/java-17-openjdk-amd64/lib/security/cacerts
Windows: C:\Program Files\Java\jre1.8.0_221\lib\security\cacerts
Das Passwort für den default Keystore lautet: changeit
Um die Liste der Zertifikate anzuzeigen, geben Sie folgenden Befehl ein:
keytool -list -keystore cacerts
Zur Importierung des Zertifikats müssen Sie den folgenden Befehl eingeben:
keytool -keystore cacerts -importcert -alias [name eingeben] -file [name eingeben].cer
Sie werden gefragt, ob sie dem Zertifikat vertrauen möchten. Dies bestätigen Sie hier mit Ja.
Die Zertifikate des Trust Stores können mit einem Tool bearbeitet, importiert und exportiert werden:
Homepage: http://portecle.sourceforge.net/
HowTo: http://portecle.sourceforge.net/howtos.html
Download: https://sourceforge.net/projects/portecle/
projectfacts updaten / aktualisieren #
Zur Installation der aktuellen Updateversion ist ein teamspace-classic Account erforderlich.
Falls Sie noch keinen teamspace-classic Account haben, melden Sie sich bitte bei uns, damit wir Ihnen einen Account einrichten können.
Wenn Sie sich in teamspace-classic angemeldet haben, klicken Sie auf »Dateien – aktuelle Version«, um die aktuelle Version von projectfacts herunterzuladen.
Beachten Sie bitte auch die »Pinnwand«. Dort sind Informationen hinterlegt, falls Sie einen größeren Versionssprung vornehmen möchten. Es ist möglich, dass kleine Anpassungen vor einem Update vorgenommen werden müssen.
Linux #
1. Kopieren Sie das aktuelle Update in das Verzeichnis /srv/projectfacts.
2. Stoppen Sie den Tomcat-Server. Überprüfen Sie, ob der Tomcat gestoppt wurde.
3. Beachten Sie die Hinweise auf der Pinnwand und die Update-Hinweise.
4. Führen Sie das deploy-script mit folgendem Befehl aus: ./deploy-war.sh
5. Nachdem das Skript ausgeführt wurde, starten Sie den Tomcat-Server. Es kann einen Moment dauern, bis das System wieder erreichbar ist.
6. Wenn das System wieder erreichbar ist, melden Sie sich bitte an. Klicken Sie auf die Schaltfläche »(i)« in der Sidebar, um die Versionsnummer zu überprüfen.
Windows #
1. Kopieren Sie das aktuelle Update in das Verzeichnis »C:\projectfacts«.
2. Stoppen Sie den Tomcat-Server. Überprüfen Sie, ob der Tomcat gestoppt wurde.
3. Beachten Sie die Hinweise auf der Pinnwand und die Update-Hinweise.
4. Führen Sie das deploy-Script mit den Administratorrechten aus. Überprüfen Sie zuerst die Pfade im Deploy-Script.
5. Nachdem das Skript ausgeführt wurde, starten Sie den Tomcat-Server. Es kann einen Moment dauern, bis das System wieder erreichbar ist.
6. Wenn das System wieder erreichbar ist, melden Sie sich bitte an. Klicken Sie auf die Schaltfläche »(i)« in der Sidebar, um die Versionsnummer zu überprüfen.
Update Benachrichtigung für neue Version #
Für die Benachrichtigung über neue Updates für projectfacts ist ein teamspace-classic Account erforderlich. Wenn Sie keinen teamspace-classic Account haben, melden Sie sich bitte bei uns.
- Nachdem Sie sich in Teamspace-classic eingeloggt haben, klicken Sie auf »Dateien«.
- Klicken Sie auf den Ordner »Aktuelle Version« (Rechtsauswahlbox)
- Klicken Sie nun auf das Dropdown-Menü und wählen Sie »Beobachten« und klicken Sie auf »Aktion«.
- Klicken Sie auf die Schaltfläche »Übersicht« und wählen Sie auf der linken Seite »Übersicht anpassen«.
- Wählen Sie im »Änderungsbericht« das »Versendeintervall« aus und klicken Sie auf »Speichern«.
Sobald sich eine neue Version im Ordner »Aktuelle Version« befindet, erhalten Sie eine E-Mail.
OAuth 2.0 Login - Microsoft 365 Mail Konten #
Bitte teilen Sie uns Ihre URL mit, damit wir sie in die »Whitelist« einfügen können, um das OAuth zu verwenden.
Sollten Sie Fragen haben oder Unterstützung bei der Anpassung benötigen, zögern Sie nicht, uns unter support@projectfacts.de zu kontaktieren.
PDF-Verarbeitungsdienst #
Linux #
Ein Hilfsdienst, der Word-Dokumente in PDFs umwandeln kann und das Zusammenfassen verschiedener Dokumentenarten in ein PDF ermöglicht.
Um die PDF-Funktion nutzen zu können, benötigen Sie die jod-server.jar Datei. Wir stellen Ihnen diese auf Anfrage zur Verfügung.
1. apt install libreoffice
2. jod-server.jar nach /opt/jod-server/ kopieren
3. /opt/jod-server/config.properties erstellen, mit folgendem Inhalt:
port=3902 (Hier kann ein beliebiger Port angegeben werden.)
threads=2
whitelist=* (Um die IP-Adresse zu erlauben muss diese in RegEx angegeben werden)
4. Benutzer und Gruppe anlegen:
groupadd -r jod
useradd -r -s /bin/false -g jod jod
chown jod: /opt/jod-server
5. /etc/systemd/system/jod.service erstellen mit folgendem Inhalt:
[Unit]
Description=JOD-Server
[Service]
WorkingDirectory=/opt/jod-server
ExecStart=/bin/java -jar jod-server.jar
User=jod
Type=simple
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
6. systemctl daemon-reload
7. systemctl enable jod.service
8. web.xml von projectfacts anpassen oder Eintrag hinzufügen, falls diese nicht vorhanden ist:
pdfConvertService.url
127.0.0.1:3902
Windows #
Ein Hilfsdienst, der Word-Dokumente in PDFs umwandeln kann und das Zusammenfassen verschiedener Dokumentenarten in ein PDF ermöglicht.
Um die PDF-Funktion nutzen zu können, benötigen Sie die jod-server.jar Datei. Wir stellen Ihnen diese auf Anfrage zur Verfügung.
Legen Sie unter C:\projectfacts\ den Ordner jod-server an (C:\projectfacts\jod-server).
Erstellen Sie eine Datei mit dem Namen jod-server-start.bat und fügen Sie folgenden Inhalt hinzu:
java -Dserver.port=3902 -jar jod-server.jar
Legen Sie eine Aufgabenplanung an, damit die Batch Datei nach dem Starten des Servers automatisch gestartet wird.
LDAP-Verbindung einrichten #
Wenn Sie projectfacts mit LDAP verbinden möchten wird Ihnen hier Schritt für Schritt erklärt wie Sie die LDAP-Anbindung einrichten können.
ldap.userBaseDN & ldap.groupDN ermitteln
Um die beiden oben genannten Pfade zu ermitteln verbinden Sie sich auf dem LDAP Server.
Um die User BASE DN zu ermitteln geben Sie in der CMD folgenden Befehl ein:
dsquery user -name <username being used>
Um die Group Base DN zu ermitteln geben Sie in der CMD folgenden Befehl ein:
dsquery group -name <group name>
Um den LDAP Server Hostname zu ermitteln geben Sie in der CMD folgenden Befehl ein:
set L
Anpassung an der web.xml für LDAP
In der web.xml ist die LDAP-Anbindung auskommentiert. Kommentieren Sie diese ein und Passen Sie die grün markierten Bereiche an. Sollte der Block nicht vorhanden sein können Sie diesen hier einfach in die web.xml einfügen:
Parameter Erklärung für LDAP #
Bezeichnung | Beschreibung |
app.authMethod | Kann auf „basic“ gesetzt werden wenn man „Basic Authentication“ anstatt eines Formulars für den Login in projectfacts verwenden möchte |
app.authBackend | Für die LDAP Anbindung muss hier „ldap“ eingetragen werden |
app.defaultMandant | Die ID des Mandanten |
ldap.host | Vollständige URL zum LDAP Server (z.B. ldap://127.0.0.1:389) |
ldap.authMethod | Kann entweder „none“, „simple“ oder eine sasl_mech-Liste sein (siehe http://docs.oracle.com/javase/tutorial/jndi/ldap/authentication.html) |
ldap.allowOfflineLogin | Wie lange, nach dem letzten erfolgreichen LDAP Login, darf man sich in pf einloggen, wenn der LDAP nicht erreichbar ist (Wert in Stunden). |
ldap.userBaseDN | Der DN in dem wir nach Benutzern suchen |
ldap.groupDN | DN der Gruppe, zu der ein Benutzer gehören muss, damit er sich einloggen darf. |
ldap.principalPattern | Bei einem AD kann man auf 11 verschiedene Weisen seinen „Benutzernamen“ eingeben. Hier kann man bestimmen ob und wie der „rohe“ Loginname zu einem Principal umformatiert wird (z.B. „{0}@5p“) |
ldap.userUID | Attribut eines Benutzers, welches ihn eindeutig identifiziert (der Loginname). Beim AD ist das idR. „sAMAccountName“. |
ldap.userGUID | Attribut eines Benutzers, welches ihn global eindeutig identifiziert. Dieses Attribut muss auch beim Umbenennen oder Verschieben eines Benutzer gleich bleiben. Beim AD ist das die GUID bzw. objectGUID. |
ldap.userSearch | Ein Suchfilter um einen Benutzer zu finden. Syntax siehe http://docs.oracle.com/javase/tutorial/jndi/ops/filter.html. Als Platzhalter für den Benutzernamen verwenden wir {0} |
ldap.searchUserDN | Der DN eines Benutzers der im LDAP nach Benutzern suchen darf |
ldap.searchUserPw | Passwort für den Such-Benutzer |
LDAP Benutzer Zuweisen #
Tomcat 9 Installation unter Debian 12 #
Aufgrund der Verwendung des Tomcat 9 und der Tatsache, dass unter Debian 12 kein Tomcat 9 verfügbar ist, muss der Tomcat 9 manuell installiert werden.
Java 17 Installieren #
Wenn Sie bereits Java 17 (OpenJDK17) installiert haben, können Sie den Punkt überspringen.
sudo apt update && apt install openjdk-17-headless
Java installation Prüfen
Java -version
openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment (build 17.0.7+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.7+7-Debian-1deb12u1, mixed mode, sharing)
Tomcat Benutzer und Gruppen anlegen #
Legen Sie Tomcat Benutzer und Gruppe an:
sudo groupadd tomcat9 && sudo useradd -s /bin/false -g tomcat9 -d /opt/tomcat tomcat9
Download von Tomcat 9 und entpacken #
Gehen Sie auf die offizielle Website von Tomcat, um den aktuellen Tomcat 9 herunterzuladen.
Offizielle Downloadseite: https://archive.apache.org/dist/tomcat/
cd /tmp && wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
Tomcat unter /opt/tomcat entpacken:
sudo mkdir /opt/tomcat && sudo tar xzvf apache-tomcat-*.tar.gz -C /opt/tomcat –strip-components=1
Berechtigung anpassen #
cd /opt/tomcat && sudo chgrp -R tomcat9 /opt/tomcat && sudo chmod -R g+r conf && sudo chmod g+x conf && sudo chown -R tomcat9 webapps/ work/ temp/ logs/
Anlegen der Tomcat Systemd Datei #
JAVA_HOME Pfad herausfinden:
sudo update-java-alternatives -l
java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64
Die tomcat.service Datei anlegen und passen Sie den JAVA_HOME Pfad an:
vim /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat9
Group=tomcat9
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
JAVA_HOME: Hier können Sie den jeweiligen Java-Homepfad anpassen.
CATALINA_OPTS: Hier den RAM bedarf anpassen.
Den Daemon neustarten und Tomcat in den Autostart konfigurieren:
sudo systemctl daemon-reload && sudo systemctl enable --now tomcat && systemctl status tomcat
Der Tomcat 9 ist installiert und befindet sich unter /opt/tomcat.