Mark,

Am 2020-04-15 um 13:44 schrieb Mark Thomas:
> On 15/04/2020 12:06, Osipov, Michael wrote:
>> Folks,
>>
>> is there any way to access the server certififace from a valve which has
>> been used to establish the TLS context? I haven't found an easy way. I
>> don't want to traverse request.getConnector().findSslHostConfigs()
>> because it would make it more complex than necessary or even unreliable,
>> especially when SANs are used.
>>
>> I'd like to evaluate RFC 5929 for the paranoid.
>
> This is fairly easy with a small patch to Tomcat.
>
> The non-specification compliant request attribute
> javax.servlet.request.ssl_session_mgr gives you an instance of
> org.apache.tomcat.util.net.SSLSupport

This sounds promising! I wonder why it uses the javax namespace although not being part of the Servlet Spec. The commect says that this is an extension, I'd expect to be in Tomcat namespace.

> If you add a method to that interface. I suggest:
> java.security.cert.Certificate [] getLocalCertificates();
> That is then trivial to implement in JSSESupport.
>
> It is a little more work for AprSLSupport but SSL_INFO_SERVER_CERT
> should get you what you want.
* Why not X509Certificate[] like with #getPeerCertificateChain()?
* Why an array? I don't see SSL_INFO_SERVER_CERT_CHAIN.
* If this is an array, how am I supposed to know which one has been used?

Please don't forget SSL_SERVER_CERT in SSLValve if Tomcat is behind a proxy. Likely the AJP connector needs to be changed too. (I use mod_proxy_http only).

I am a bit confused why AjpProcessor still refers to JkCoyoteHandler. This is likely a leftover.

org.apache.coyote.AbstractProcessor.populateSslRequestAttributes() does the attributes magic, maybe we can introduce a new attribute to avoid working with SSLSupport instances directly.

I will file a Bugzilla issue to track this.

Thank you,

Michael

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to