Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp3prepare-tomcat [2019/08/13 17:03] – [Startup-Konfiguration] Raoul Gunnar Boreniusde:shibidp3prepare-tomcat [2021/05/03 13:18] (aktuell) – veralteten Inhalt gelöscht Silke Meyer
Zeile 1: Zeile 1:
-===== IdP 3.x Vorarbeiten: Tomcat ===== 
- 
-==== Installation ==== 
- 
-=== Debian 10 === 
- 
-<code bash> 
-root@idp:~# apt install tomcat9 
-</code> 
- 
-=== Debian 8/9 === 
- 
-<code bash> 
-root@idp:~# apt-get install tomcat8 
-</code> 
- 
-Hinweis: Sofern Sie tomcat8 aus Debian-Jessie-Backports verwenden (nicht unbedingt nötig) brauchen Sie auch das Paket 'libservlet3.1-java' um den IdP betreiben zu können. 
- 
-=== RHEL === 
- 
-EPEL installieren 
- 
-RHEL/CentOS 6 32-Bit 
- 
-<code bash> 
-wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 
-rpm -ivh epel-release-6-8.noarch.rpm 
-</code> 
- 
-RHEL/CentOS 6 64-Bit 
- 
-<code bash> 
-wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
-rpm -ivh epel-release-6-8.noarch.rpm 
-</code> 
- 
-EPEL verifizieren 
- 
-<code bash> 
-yum repolist 
-</code> 
- 
-EPEL aktivieren 
- 
-<code bash> 
-yum-config-manager --enable epel 
-</code> 
- 
-<code bash> 
-yum install tomcat 
-</code> 
- 
-==== 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 === 
- 
-<file bash /etc/default/tomcat9> 
-# den Tomcat mit genug Speicher starten: 
-JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m" 
-</file> 
- 
-<file ini /etc/systemd/system/tomcat9.service.d/override.conf> 
-[Service] 
-ReadWritePaths=/opt/shibboleth-idp/logs/ 
-ReadWritePaths=/opt/shibboleth-idp/metadata/ 
-</file> 
- 
-=== Debian 8/9 === 
- 
-<file bash /etc/default/tomcat8> 
-# den Tomcat mit genug Speicher starten: 
-JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m" 
-# Zugriff auf das File-System: 
-TOMCAT8_SECURITY=no 
-</file> 
- 
-=== CentOS/RHEL === 
- 
-Die Tomcat-Start-Optionen werden in /etc/tomcat8/tomcat8.conf festegelegt. 
- 
-==== 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 
- 
-<file xml /etc/tomcatX/server.xml> 
-<Server port="8005" shutdown="SHUTDOWN"> 
-   <!-- ... --> 
-  <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> 
-  <!-- ... --> 
-</Server> 
-</file> 
- 
-Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context: 
- 
-<file xml /etc/tomcatX/Catalina/localhost/idp.xml> 
-<Context docBase="/opt/shibboleth-idp/war/idp.war" 
-         privileged="true" 
-         unpackWAR="true" 
-         antiResourceLocking="false" 
-         swallowOutput="true" /> 
-</file> 
- 
-**Achtung:**  Unter CentOS 7 und Tomcat 7 muss ''unpackWAR="false"''  gesetzt werden! 
- 
-IdP-Sessions gehen bei einem Tomcat-Neustart in jedem Fall verloren. Daher macht es keinen Sinn (bzw. führt nur zu unnötigen IdP-Fehlermeldungen) wenn alte Sessions bei einen Tomcat-Neustart weiter existieren. Deaktivieren Sie daher dieses Tomcat-Feature: 
- 
-<file xml /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> 
-</file> 
- 
-==== Java Server Tag Library (JSTL) ==== 
- 
-Als letztes muss noch die Java Server Tag Library heruntergeladen und in das Tomcat-Verzeichnis $CATALINA_BASE/lib gelegt werden (unter Debian/Unbuntu ist das /var/lib/tomcat8/lib, bei anderen Distributionen bitte entsprechend anpassen): 
- 
-<code bash> 
-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 
-</code> 
- 
-==== Tomcat Restart ==== 
- 
-Nach den ganzen obigen Anpassungen können Sie jetzt den Tomcat neu starten: 
- 
-<code bash> 
-root@idp:~# systemctl restart tomcatX 
-</code> 
- 
-Lassen Sie am besten beim restart des Tomcat in einem zweiten Fenster den Tomcat-Log mitlaufen um zu sehen ob es beim Start Probleme gibt: 
- 
-<code bash> 
-root@idp:~# tail -f /var/log/tomcatX/catalina.DATUM.log 
-</code> 
- 
-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 zwei Ports auf Localhost lauscht: 
- 
-<code bash> 
-root@idp:~# netstat -tlpen | grep java 
-tcp6            0 127.0.0.1:8005          :::*                    LISTEN      118        5994188     2594/java 
-tcp6            0 127.0.0.1:8009          :::*                    LISTEN      118        5993661     2594/java 
-</code> 
- 
-==== Tomcat 7 ==== 
- 
-Wir empfehlen Tomcat9 oder zumindest Tomcat8, siehe oben. Falls Sie noch Tomcat7 einsetzen, ist das folgende vielleicht hilfreich: 
- 
-Sollte es beim Neustart nach Installation und Konfiguration des IdP folgender Fehlermeldung kommen: \\ > "Resource specification not allowed here for source level below 1.7" \\ … so muss die Tomcat-eigene web.xml angepasst werden. Siehe hierzu [[http://www.censore.blogspot.in/2015/04/how-to-set-tomcat-7-source-level-to.html|http://www.censore.blogspot.in/2015/04/how-to-set-tomcat-7-source-level-to.html]] \\ 
-Bei Debian/Ubuntu liegt diese Datei unter /etc/tomcat7/web.xml, bei SLES 12 unter /usr/share/tomcat/conf/web.xml 
- 
-Weiter geht es mit [[:de:shibidp3prepare-http|HTTP-Server]]. 
- 
  
  • Zuletzt geändert: vor 5 Jahren