How to debug a TLSv1.3 protocol problem?

Jan Just Keijser janjust at nikhef.nl
Tue May 19 07:40:10 UTC 2020


Hi Claus,

On 18/05/20 20:59, Claus Assmann wrote:
> On Mon, May 18, 2020, Alexander Gryanko wrote:
>
> [thanks for the hints, I will try that ASAP]
>
>> But first of all, check your cert type. Looks like you are using non-RSA
>> cert which is not supported by S8.
> As I wrote: it works fine if I don't use TLSv1.3 or if I use openssl
> s_client with TLSv1.3 (it is an RSA cert and I also tested against
> another S8 server which uses a Let's Encrypt cert).
FWIW:  adding TLS 1.3 support to my EAP-TLS code got me stumped for a 
while as well. I eventually added up the following snippet:

     /* Set up a SSL Session cache with a callback. This is needed for 
TLSv1.3+.
      * During the initial handshake the server signals to the client 
early on
      * that the handshake is finished, even before the client has sent its
      * credentials to the server. The actual connection (and moment 
that the
      * client sends its credentials) only starts after the arrival of 
the first
      * session ticket. The 'ssl_new_session_cb' catches this ticket.
      */
     SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_CLIENT | 
SSL_SESS_CACHE_NO_INTERNAL_STORE);
     SSL_CTX_sess_set_new_cb(ctx, ssl_new_session_cb);



with

int ssl_new_session_cb(SSL *s, SSL_SESSION *sess)
{
     dbglog("EAP-TLS: Post-Handshake New Session Ticket arrived:");

     /* always return success */
     return 1;
}


This callback is necessary as otherwise the client thinks the session 
handshake is done too soon (and in my case, it does not bother to send 
any client-side certificate info to the server).

Perhaps you are seeing something similar? If not, then sorry for the noise.

HTH,

JJK / Jan Just Keijser



More information about the openssl-users mailing list