> Are you keeping an SSL connection for a long time? Or, do you mean that
> if you wait for slightly longer than 1 minute after the last SSL request
> to make another one, the client certificate does not get delivered to
> Tomcat?

The latter one :)

>> 1) go to https://localhost:8443/ssltest, it will show the client certificate
>
> Does the request complete successfully at this point: meaning that the
> TCP/IP connection is closed and you get all the bytes you expected from
> the server?

I think so.

>> 2) wait 1 minute
>> 3) refresh browser - the application will not get the client certificate
>>  (request.getAttribute("javax.servlet.request.X509Certificate") returns null)
>
> I'm no SSL expert, but these two requests ought to be completely
> independent of each other: the client certificate should always be sent.

There is a concept of SSL session (Resumed TLS handshake), and I think
the client certificate
should be cached on the server side for some time.

>> 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".
>
> 1 minute after step #1 above, or step #3?

After step #1

> In step #3, is the client certificate sent by the browser or not?

The browser only sends client certificate on step #1.
And this works unless APR+Firefox is used.
As I suggested, the server side should cache the cert.

>> The only significant difference is that Safari seems to terminate the
>> connection by sending SSL alert packet.
>
> Terminates which connection? #1 or #3?

#3

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to