Hi, Albert.
I do not know how to help you, but you can help me with SSL + Tomcat.
I saw You made an two-sided SSL with default tomcat connector, and I'd like
to ask you about this:
What steps have you done to make it work?
If you can, please help.

Thanks..

On Mon, Feb 22, 2010 at 2:16 PM, Albert Tumanov <altum...@gmail.com> wrote:

> Dear colleagues,
>
> I'm chasing a strange problem with Tomcat + SSL + APR + Firefox.
>
> Namely, the setup works perfectly (i.e. the client certificate is sent
> and the servlet application can get it).
> But if I allow the SSL connection to time out (it happens 1 minute
> after the last request), the servlet application does not get the
> client certificate anymore.
>
> The workaround is to clear Firefox cache (Tools - Clear Recent History
> - 1 hour, Active logins).
> After this, the application will work again until the next timeout.
>
> This problem does NOT occur if I use pure Java SSL config (no APR) or
> when I use browser other that Firefox.
>
> From that you can imply that this might be a Firefox problem, but I'm
> not so sure.
> Firefox works perfectly with all other HTTPS sites and also pure Java
> SSL config works with Firefox.
> So obviously this problem occurs because Tomcat libnative fails to
> handle some peculiarities of Firefox SSL packets.
>
> Here is my exact setup:
> - Debian 5 (Lenny)
> - libapr1 1.2.12-5+lenny1
> - openssl  0.9.8g-15+lenny6
> - Tomcat 6.0.24 with tomcat-native-1.1.19
> - server authentication certificates (newcert.pem, newkey-no-password.pem)
> - client authentication certificates (cas.crt and a personal
> certificate signed by that)
> - a simple servlet "ssltest" to get the client cert:
>       writer.println(Arrays.deepToString((X509Certificate[])
> request.getAttribute("javax.servlet.request.X509Certificate")));
> - Firefox 3.6
>
> The only change in server.xml is the connector conf:
>
>    <Connector port="8443" SSLEnabled="true"
>               maxThreads="150" scheme="https" secure="true"
>               SSLCertificateFile="${user.home}/newcert.pem"
>               SSLCertificateKeyFile="${user.home}/newkey-no-password.pem"
>               SSLVerifyClient="require"
>               SSLVerifyDepth="2"
>               SSLCACertificateFile="${user.home}/cas.crt"
>               />
>
> Now steps to reproduce:
> 1) go to https://localhost:8443/ssltest, it will show the client
> certificate
> 2) wait 1 minute
> 3) refresh browser - the application will not get the client certificate
>  (request.getAttribute("javax.servlet.request.X509Certificate") returns
> null)
>
> I have traced the SSL packets using "ssltap -sxlp 8444 localhost:8443"
> It shows that 1 minute after the last request, there will be "Read EOF
> on Server socket".
> After that, the problem starts occuring.
>
> I have compared ssltap traces for Firefox and Safari.
> They look pretty similar.
> The only significant difference is that Safari seems to terminate the
> connection by sending SSL alert packet.
> In case of Firefox, it is the Tomcat server who sends the first SSL
> alert packet.
>
> I hope somebody can shed a light on that issue :)
>
> Best Regards,
> Albert
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to