[openssl-users] What is the best practise for shutdown SSL connections?

Viktor Dukhovni openssl-users at dukhovni.org
Mon Feb 2 15:00:51 UTC 2015


On Mon, Feb 02, 2015 at 09:23:19AM +0300, Serj wrote:

> > http://tools.ietf.org/html/rfc5246#section-7.2.1
> 
> I read RFC. Have read "7.2.1. Closure Alerts" once again.
> But this is the normative document. I ask: what in practise in terms of OpenSSL API?
> 
> As I already said some servers don't send "close_notify" and just close the connection.

If you close first, that's OK.  Also OK, if there's an application-level
end-of-data indication.  For example, with SMTP client sends
"QUIT<CRLF>" and server sends "221 Goodbye", there's no need to
explicitly perform an SSL_shutdown().  However, Postfix does it
by the book per TLSv1.0:

	if (SSL_shutdown() == 0)
	    SSL_shutdown()

with appropriate handling of WANT_READ/WANT_WRITE, timeouts, ...

> >> And what about the best practice for shutdown of connection on the server
> >> side? Is it mandatory to wait "close_notify" from client to be able to
> >> save valid session for this client or not? If server close the connection
> >> after all data has been sent to the client and don't receive "close_notify",
> >> will be the session kept?
> >
> > http://tools.ietf.org/html/rfc5246#section-7.2.1
> 
> I ask: what in practise in terms of OpenSSL API?
> If SERVER close the connection after all data has been sent to the client and will not wait for "close_notify" alert from CLIENT, will be the session kept and valid in OpenSLL API?

It should be sufficient for the server to send its close notify
without waiting for a client response.  If the server destroys the
SSL connection without calling SSL_shutdown() I am not sure whether
the session remains cached.

> I mean, can CLIENT then reuse this session, if it doesn't send "close_notify" alert? Or this session will be invalid?

Try it, see what happens.  The client is certainly free to *try*
to the reuse the session, worst-case the server will perform a full
handshake anyway.

-- 
	Viktor.


More information about the openssl-users mailing list