On Wed, May 08, 2013 at 11:49:53PM +0000, Viktor Dukhovni wrote: > The encrypted finished message from rho.salmi.ch is 32 bytes, with gdb we see > that the first four bytes decrypt to: > > "0x14 0x00 0x00 0x00" + [(type 20, length 0)] > 0 bytes finished + > 20 bytes SHA = 24 bytes + > AES padding = 32. > > So this server generated an empty SSL "finished" message. Can't > say why, but this is definitely not right, and appears to be > something special about this server.
Using an OpenSSL library compiled with "no-tlsext" hides the problem, as the server no longer resumes any sessions. Most likely the server has a broken implementation of "session tickets". I would not recommend disabling tls extensions as a solution, the problem server is unlikely to represent a large fraction of the SMTP server population. If necessary, one can create a clone of the smtp transport that has no client TLS session cache and route problem destinations via the custom transport. master.cf: smtp unix - - n - - smtp tlsbug unix - - n - - smtp -o smtp_tls_session_cache_database= transport: salmi.ch tlsbug:salmi.ch:587 If "salmi.ch:587" is the OP's relayhost, then all off-site mail goes there, and the custom transport is not needed, just set: main.cf: relayhost = salmi.ch:587 # The relayhost's server session cache is broken, disable the client cache. smtp_tls_session_cache_database = -- Viktor.