IdP-Vorarbeiten: Tomcat
Installation
Debian 12
root@idp:~# apt install tomcat10
Startup-Konfiguration
Einige globale Java-Parameter müssen beim Tomcat-Start festgelegt werden. Das IdP-Servlet benötigt Zugriff auf das Filesystem:
Debian 12
Für die Schreibberechtigungen vom Tomcat muss eine Override-Konfiguration für Systemd angelegt werden:
root@idp:~# mkdir /opt/shibboleth-idp/htdocs root@idp:~# mkdir /opt/shibboleth-idp/logs root@idp:~# mkdir /opt/shibboleth-idp/metadata root@idp:~# systemctl edit tomcat10.service
Dadurch wird unter /etc/systemd/system/tomcat10.service.d
eine Datei override.conf
angelegt, die Sie wie folgt editieren und speichern:
- /etc/systemd/system/tomcat10.service.d/override.conf
### Editing /etc/systemd/system/tomcat10.service.d/override.conf ### Anything between here and the comment below will become the new contents of the file [Service] ReadWritePaths=/opt/shibboleth-idp/logs/ ReadWritePaths=/opt/shibboleth-idp/metadata/ ### Lines below this comment will be discarded
Achtung:
- Das Einfügen muss im oberen Bereich der Datei zwischen den Kommentaren erfolgen, wie in der Datei auf Englisch beschrieben. Eine anderweitige Platzierung führt zu Fehlern.
- Bei der Angabe von nicht existenten Pfaden startet der Tomcat nicht.
Port-Konfiguration
In der Tomcat-Configuration wird dann
- aus Sicherheitsgründen der Default-Port 8080 abgeschaltet
- auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet
- Die letzte Einstellung secretRequired kann auf false gesetzt werden, wenn der AJP-Connector innerhalb eines vertrauenswürdigen Netzwerks läuft. Steht das Setting auf true, so muss zusätzlich das secret angegeben werden (siehe Tomcat-Doku).
- /etc/tomcat10/server.xml
<!-- ... --> <Service name="Catalina"> <!-- ... --> <!-- non-SSL/TLS HTTP/1.1 Connector on port 8080 abschalten --> <!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <!-- ... --> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" address="127.0.0.1" protocol="AJP/1.3" redirectPort="8443" enableLookups="false" useIPVHosts="true" maxPostSize="100000" URIEncoding="UTF-8" secretRequired="false" /> <!-- ... --> </Service> <!-- ... -->
Tomcat-Loader-Pfad erweitern
Sofern obige Symlink-Variante nicht funktioniert kann stattdessen der Tomcat-Loader-Pfad in /etc/tomcat10/catalina.properties
erweitert werden:
- /etc/tomcat10/catalina.properties
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar",/usr/share/java/*.jar
Konfiguration für das IdP-Servlet vorbereiten
Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context:
- /etc/tomcat10/Catalina/localhost/idp.xml
<Context docBase="/opt/shibboleth-idp/war/idp.war" privileged="true" unpackWAR="true" antiResourceLocking="false" swallowOutput="true" />
Sie haben jetzt eine Tomcat-Konfiguration, die nicht startet, solange nichts unter /opt/shibboleth-idp liegt!
Weiter geht es mit den Zertifikaten.