IdP-Vorarbeiten: Tomcat

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:

/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.

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

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 liegt!

Weiter geht es mit den Zertifikaten.

  • Zuletzt geändert: vor 6 Tagen