root@idp:~# apt install tomcat10
Einige globale Java-Parameter müssen beim Tomcat-Start festgelegt werden. Das IdP-Servlet benötigt Zugriff auf das Filesystem:
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:
### 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:
In der Tomcat-Configuration wird dann
<!-- ... --> <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> <!-- ... -->
Sofern obige Symlink-Variante nicht funktioniert kann stattdessen der Tomcat-Loader-Pfad in /etc/tomcat10/catalina.properties
erweitert werden:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar",/usr/share/java/*.jar
Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context:
<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 liegt!
Weiter geht es mit den Zertifikaten.