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]
Silke Meyer angelegt
de:shibidp:prepare-tomcat [2020/06/30 13:45] (aktuell)
Silke Meyer
Zeile 1: Zeile 1:
-===== IdP-Vorarbeiten:​ Tomcat =====+====== IdP-Vorarbeiten:​ Tomcat ​======
  
-==== Installation ====+===== Installation ​=====
  
-=== Debian 10 ===+==== Debian 10 ====
  
 <code bash> <code bash>
Zeile 9: Zeile 9:
 </​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 17:
 </​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 25:
 </​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 ====
  
 <file bash /​etc/​default/​tomcat9>​ <file bash /​etc/​default/​tomcat9>​
Zeile 37: Zeile 37:
  
 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 müssen ein Verzeichnis und eine Override-Konfiguration für Systemd angelegt werden:
-<​code>​+<​code ​bash>
 root@idp:~# mkdir /​etc/​systemd/​system/​tomcat9.service.d root@idp:~# mkdir /​etc/​systemd/​system/​tomcat9.service.d
 </​code>​ </​code>​
Zeile 48: Zeile 48:
 </​file>​ </​file>​
 Anschließend:​ Anschließend:​
-<​code>​ +<​code ​bash
-systemctl daemon-reload+root@idp:​~# ​systemctl daemon-reload
 </​code>​ </​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 62:
   * 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 81:
                ​useIPVHosts="​true"​                ​useIPVHosts="​true"​
                ​maxPostSize="​100000"​                ​maxPostSize="​100000"​
-               ​URIEncoding="​UTF-8"​ />+               ​URIEncoding="​UTF-8
 +               ​secretRequired="​false" />
     <!-- ... -->     <!-- ... -->
   </​Service>​   </​Service>​
Zeile 88: Zeile 90:
 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 109: Zeile 111:
 </​file>​ </​file>​
  
-==== Java Standard Tag Library (JSTL) ==== +===== Java Standard Tag Library (JSTL) ​===== 
-=== Debian 10 ===+==== Debian 10 ====
 Unter Debian 10 kann die JSTL aus dem Debian-Repository installiert werden: Unter Debian 10 kann die JSTL aus dem Debian-Repository installiert werden:
 <code bash> <code bash>
Zeile 122: Zeile 124:
 </​file>​ </​file>​
  
-=== OpenSUSE Leap 15.1 ===+==== OpenSUSE Leap 15.1 ====
  
 <code bash> <code bash>
Zeile 128: Zeile 130:
 </​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 ​   0 127.0.0.1:​8005 ​   :::*    LISTEN ​  ​2594/​java) +
- ​tcp6 ​    ​0 ​   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 141:
 </​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}}
  • Zuletzt geändert: vor 3 Monaten