Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp:prepare-tomcat [2020/04/06 14:25] – angelegt Silke Meyerde:shibidp:prepare-tomcat [2024/03/04 15:53] (aktuell) – [Debian 10/11] Wolfgang Pempe
Zeile 1: Zeile 1:
-===== IdP-Vorarbeiten: Tomcat =====+<- de:shibidp:prepare-java|Vorarbeiten: Java/OpenJDK ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:shibidp:prepare-zert|Vorarbeiten: Zertifikate ->
  
-==== Installation ====+====== IdP-Vorarbeiten: Tomcat ======
  
-=== Debian 10 ===+===== Installation ===== 
 + 
 +==== Debian 10/11 ====
  
 <code bash> <code bash>
Zeile 9: Zeile 11:
 </code> </code>
  
-=== CentOS 7 ===+==== CentOS 7 ====
  
 CentOS 7 bringt über das Repository noch Tomcat 7 mit. Neuere Versionen können Sie manuell installieren. CentOS 7 bringt über das Repository noch Tomcat 7 mit. Neuere Versionen können Sie manuell installieren.
Zeile 17: Zeile 19:
 </code> </code>
  
-=== OpenSUSE Leap 15.1 ===+==== OpenSUSE Leap 15.1 ====
  
 OpenSUSE Leap 15 kommt mit Tomcat 9. OpenSUSE Leap 15 kommt mit Tomcat 9.
Zeile 25: Zeile 27:
 </code> </code>
  
-==== Startup-Konfiguration ====+===== 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: 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 ===+==== Debian 10/11 ====
  
 <file bash /etc/default/tomcat9> <file bash /etc/default/tomcat9>
 # den Tomcat mit genug Speicher starten: # den Tomcat mit genug Speicher starten:
-JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m"+JAVA_OPTS="-Djava.awt.headless=true -Xms1024m -Xmx2048m"
 </file> </file>
  
-Für die Schreibberechtigungen vom Tomcat müssen ein Verzeichnis und eine Override-Konfiguration für Systemd angelegt werden: +Für die Schreibberechtigungen vom Tomcat muss eine Override-Konfiguration für Systemd angelegt werden: 
-<code> +<code bash
-root@idp:~# mkdir /etc/systemd/system/tomcat9.service.d+root@idp:~# systemctl edit tomcat9.service
 </code> </code>
  
-Die Datei wird in dem soeben erstellten Verzeichnis angelegt:+Dadurch wird unter ''/etc/systemd/system/tomcat9.service.d'' eine Datei ''override.conf'' angelegt, die Sie wie folgt editieren und speichern:
 <file ini /etc/systemd/system/tomcat9.service.d/override.conf> <file ini /etc/systemd/system/tomcat9.service.d/override.conf>
 [Service] [Service]
Zeile 47: Zeile 49:
 ReadWritePaths=/opt/shibboleth-idp/metadata/ ReadWritePaths=/opt/shibboleth-idp/metadata/
 </file> </file>
-Anschließend: 
-<code> 
-systemctl daemon-reload 
-</code> 
  
-=== CentOS und OpenSUSE ===+==== CentOS und OpenSUSE ====
  
 Die Tomcat-Start-Optionen werden in ''/etc/tomcat/tomcat.conf'' festgelegt. Die Tomcat-Start-Optionen werden in ''/etc/tomcat/tomcat.conf'' festgelegt.
  
-==== Port-Konfiguration ====+===== Port-Konfiguration =====
  
 In der Tomcat-Configuration wird dann In der Tomcat-Configuration wird dann
Zeile 62: Zeile 60:
   * aus Sicherheitsgründen der Default-Port 8080 abgeschaltet   * aus Sicherheitsgründen der Default-Port 8080 abgeschaltet
   * auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet   * 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 ([[https://tomcat.apache.org/tomcat-9.0-doc/config/ajp.html|siehe Tomcat-Doku]]).
  
-<file xml /etc/tomcatX/server.xml>+<file xml /etc/tomcat9/server.xml>
    <!-- ... -->    <!-- ... -->
   <Service name="Catalina">   <Service name="Catalina">
Zeile 80: Zeile 79:
                useIPVHosts="true"                useIPVHosts="true"
                maxPostSize="100000"                maxPostSize="100000"
-               URIEncoding="UTF-8" />+               URIEncoding="UTF-8
 +               secretRequired="false" />
     <!-- ... -->     <!-- ... -->
   </Service>   </Service>
Zeile 88: Zeile 88:
 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: 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:
  
-<file xml /etc/tomcatX/context.xml>+<file xml /etc/tomcat9/context.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
 <!-- <!--
Zeile 99: Zeile 99:
     <!-- web application will be reloaded.                                   -->     <!-- web application will be reloaded.                                   -->
     <WatchedResource>WEB-INF/web.xml</WatchedResource>     <WatchedResource>WEB-INF/web.xml</WatchedResource>
 +    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
     <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>     <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
  
Zeile 109: Zeile 110:
 </file> </file>
  
-==== Java Standard Tag Library (JSTL) ==== +===== Java Standard Tag Library (JSTL) ===== 
-=== Debian 10 === +==== Debian 10/11 ==== 
-Unter Debian 10 kann die JSTL aus dem Debian-Repository installiert werden:+Unter Debian 10 und 11 kann die JSTL aus dem Debian-Repository installiert werden:
 <code bash> <code bash>
 root@idp:~# apt install libtaglibs-standard-impl-java root@idp:~# apt install libtaglibs-standard-impl-java
Zeile 122: Zeile 123:
 </file> </file>
  
-=== OpenSUSE Leap 15.1 ===+==== OpenSUSE Leap 15.1 ====
  
 <code bash> <code bash>
Zeile 128: Zeile 129:
 </code> </code>
  
-==== Tomcat Restart ==== +===== Konfiguration für das IdP-Servlet vorbereiten =====
- +
-Nach den ganzen obigen Anpassungen können Sie jetzt den Tomcat neu starten: +
- +
-<code bash> +
-root@idp:~# systemctl restart tomcat9 +
-</code> +
- +
-Behalten Sie beim Neustart in einem zweiten Fenster das Tomcat-Log im Blick, um zu sehen, ob es beim Start Probleme gibt: +
- +
-<code bash> +
-root@idp:~# tail -f /var/log/tomcat9/catalina.DATUM.log +
-# oder +
-root@idp:~# journalctl -u tomcat -f +
-</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 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. +
- +
-<code bash> +
-root@idp:~# netstat -tlpn | grep java +
-(tcp6        0 127.0.0.1:8005    :::*    LISTEN   2594/java) +
- tcp6        0 127.0.0.1:8009    :::*    LISTEN   2594/java +
-</code> +
- +
-==== Konfiguration für das IdP-Servlet vorbereiten ====+
 Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context: Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context:
  
-<file xml /etc/tomcatX/Catalina/localhost/idp.xml>+<file xml /etc/tomcat9/Catalina/localhost/idp.xml>
 <Context docBase="/opt/shibboleth-idp/war/idp.war" <Context docBase="/opt/shibboleth-idp/war/idp.war"
          privileged="true"          privileged="true"
Zeile 163: Zeile 140:
 </file> </file>
  
-Solange nichts unter /opt/shibboleth liegt, startet der Tomcat jetzt nur mit Fehlern neu. +**Sie haben jetzt eine Tomcat-Konfiguration, die nicht startet, solange nichts unter /opt/shibboleth liegt!**
- +
-Weiter geht es mit [[:de:shibidp:prepare-http|HTTP-Server]].+
  
 +Weiter geht es mit den [[de:shibidp:prepare-zert|Zertifikaten]].
  
 +{{tag>idp4 tutorial included-in-ansible}}
  • Zuletzt geändert: vor 4 Jahren