Zeige QuelltextÄltere VersionenLinks hierherNach oben Letzte ÄnderungenPer E-Mail sendenDruckenPermalink × Inhaltsverzeichnis IdP 3.x Vorarbeiten: Tomcat Installation Debian 10 Debian 8/9 CentOS 7 OpenSUSE Leap 15.1 Startup-Konfiguration Debian 10 Debian 8/9 CentOS und OpenSUSE Port-Konfigurtion Java Standard Tag Library (JSTL) Debian 10 Debian 8/9 OpenSUSE Leap 15.1 Tomcat Restart Konfiguration für das IdP-Servlet vorbereiten ← Produktivbetrieb Attributes in a Nutshell → Dies ist eine alte Version des Dokuments! ← Produktivbetrieb Überblick: Tutorial zur IdP-Inbetriebnahme Attributes in a Nutshell → IdP 3.x Vorarbeiten: Tomcat Installation Debian 10 root@idp:~# apt install tomcat9 Debian 8/9 root@idp:~# apt-get install tomcat8 CentOS 7 CentOS 7 bringt über das Repository noch Tomcat 7 mit. Neuere Versionen können Sie manuell installieren. root@idp:~# yum -y install tomcat OpenSUSE Leap 15.1 OpenSUSE Leap 15 kommt mit Tomcat 9. root@idp:~# zypper install tomcat Startup-Konfiguration Einige globale Java-Parameter müssen beim Tomcat-Start festgelegt werden. Das IdP-Servlet benötigt mehr Speicher, als gemäß den Voreinstellungen vorgesehen ist und Zugriff auf das Filesystem: Debian 10 /etc/default/tomcat9 # den Tomcat mit genug Speicher starten: JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m" /etc/systemd/system/tomcat9.service.d/override.conf [Service] ReadWritePaths=/opt/shibboleth-idp/logs/ ReadWritePaths=/opt/shibboleth-idp/metadata/ Debian 8/9 /etc/default/tomcat # den Tomcat mit genug Speicher starten: JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m" # Zugriff auf das File-System: TOMCAT8_SECURITY=no CentOS und OpenSUSE Die Tomcat-Start-Optionen werden in /etc/tomcat/tomcat.conf festgelegt. Port-Konfigurtion 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 /etc/tomcatX/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" /> <!-- ... --> </Service> <!-- ... --> IdP-Sessions gehen bei einem Tomcat-Neustart in jedem Fall verloren. Daher ergibt es keinen Sinn (bzw. führt nur zu unnötigen IdP-Fehlermeldungen), einzustellen, dass alte Sessions über Tomcat-Neustarts persistiert werden sollen. Deaktivieren Sie daher dieses Tomcat-Feature: /etc/tomcatX/context.xml <?xml version="1.0" encoding="UTF-8"?> <!-- ... --> <!-- The contents of this file will be loaded for each web application --> <Context> <!-- Default set of monitored resources. If one of these changes, the --> <!-- web application will be reloaded. --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- siehe https://wiki.shibboleth.net/confluence/display/IDP30/ApacheTomcat8 --> <Manager pathname="" /> </Context> Java Standard Tag Library (JSTL) Debian 10 Unter Debian 10 kann die JSTL aus dem Debian-Repository installiert werden: root@idp:~# apt install libtaglibs-standard-impl-java Anschließend muss der Pfad zur .jar-Datei noch /etc/tomcat9/catalina.properties hinzugefügt werden: /etc/tomcat9/catalina.properties common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","usr/share/java/*.jar" Debian 8/9 Unter Debian 8 und 9 muss die fehlerfreie Version der Java Standard Tag Library heruntergeladen und in das Tomcat-Verzeichnis $CATALINA_BASE/lib gelegt werden. Unter Debian/Ubuntu ist das /var/lib/tomcat8/lib, bei anderen Distributionen passen Sie den Pfad ggf. entsprechend an: root@idp:~# wget https://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar \ -O /var/lib/tomcat8/lib/jstl-1.2.jar OpenSUSE Leap 15.1 root@idp:~# zypper install jakarta-taglibs-standard Tomcat Restart Nach den ganzen obigen Anpassungen können Sie jetzt den Tomcat neu starten: root@idp:~# systemctl restart tomcatX Behalten Sie beim Neustart in einem zweiten Fenster das Tomcat-Log im Blick, um zu sehen, ob es beim Start Probleme gibt: root@idp:~# tail -f /var/log/tomcatX/catalina.DATUM.log # oder root@idp:~# journalctl -u tomcat -f Sofern der Tomcat nicht fehlerfrei startet sollten Sie dem erst nachgehen, bevor Sie mit dieser Anleitung weiter machen. Wenn im Log die Meldung „Server startup in XXXXX ms“ kommt, ist der Tomcat betriebsbereit. Kontrollieren Sie dann, ob die Port-Konfiguration erfolgreich war und der Tomcat nur noch an 1-2 Ports auf Localhost lauscht. Der Port 8005 ist bei Debian/Ubuntu mit Tomcat8 sowieso OpenSUSE mit Tomcat 9 noch standardmäßig offen, bei Debian/Ubuntu mit Tomcat9 nicht mehr. Das ist okay so. root@idp:~# netstat -tlpn | grep java (tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2594/java) tcp6 0 0 127.0.0.1:8009 :::* LISTEN 2594/java Konfiguration für das IdP-Servlet vorbereiten Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context: /etc/tomcatX/Catalina/localhost/idp.xml <Context docBase="/opt/shibboleth-idp/war/idp.war" privileged="true" unpackWAR="true" antiResourceLocking="false" swallowOutput="true" /> Achtung: Unter CentOS 7 und Tomcat 7 muss unpackWAR=„false“ gesetzt werden! Solange nichts unter /opt/shibboleth liegt, startet der Tomcat jetzt nur mit Fehlern neu. Weiter geht es mit HTTP-Server. Zuletzt geändert: vor 5 Jahren Anmelden