Tomcat Connector trustMaxCertLength

Hallo zusammen,

ich bin mir gerade nicht ganz sicher ob ich das richtig verstanden hab.

Wenn mein Tomcat Verbindungen über HTPPS zulassen soll, definiere ich mir in der server.xml einen entsprechenden Connector. Das sieht dann bsow. so aus:
[XML][/XML]

Nun gibt es für den Connector noch das Attribut: trustMaxCertLength

Wenn ich trustMaxCertLength="1" setze und folgenden Zertifizierungspfad habe:

CA-ROOT
 |
 --CA-OTHR
    |
    --Client-Cert

Reicht es dann aus, das CA-ROOT im Truststore zu haben?

Und folgendes Zertifikat müsste abgelehnt werden?

CA-ROOT
 |
 --CA-OTHR-A
    |
    --CA-OTHER-B
       |
       --Client-Cert

So würde ich es auch interpretieren, ja. Der Parameter steuert die Anzahl der maximalen Zwischenzertifizierungsstellen. Sollte es mehr als zwei geben, müsste dein Tomcat die Verbindung ablehnen.

Ich habe mich gerade kurz durch den Tomcat-Quellcode gewühlt. Die Eigenschaft ist ein Wrapper für PKIXBuilderParameters.html#setMaxPathLength(int) (wenn man die JSSE-Implementierung für SSL-Sockets gewählt hat) bzw. für SSLContext.html#setVerify(…) (bei Verwendung von OpenSSL).

Die gekürzte Doku dazu:

Diese Dokumentation bestätigt meiner Lesart nach deine Annahme. Edit: Zumindest bei OpenSSL scheint das Rootzertifikat mitgezählt zu werden.

Ging es dir bei der Frage darum, wie der Parameter zu interpretieren ist, oder möchtest du den Wert tatsächlich auf 1 reduzieren?

Der Defaultwert ist (zumindest bei Tomcat 9) übrigens 10, nicht 5.

Es soll tatsächlich auf ein Zwischenzertifikat reduziert werden. Der Kunde möchte das so.

Der Truststore ist mit Keytool erstelt, dann sollte das also so korrekt sein. Das ganze wird ja eh nochmal getestet bevor es produktiv geht, wollte mich dann nur nicht blamieren xD