<div dir="ltr"><div><div><div><div><div><div>Hello,<br><br></div>I am trying to dezactivate SSLv3 protocol and keep active only TLSv1 protocol for an Erlang virtual machine using:<br></div>1) command line switch:<br>    <span class="">erl ... -ssl protocol_version '[tlsv1]'<br></span></div><span class="">2) pass to the ssl:listen/2 function the option: {versions, [tlsv1]}<br><br></span></div><div><span class="">Neither of the above has effect.<br></span></div><div><span class=""><br></span></div><span class="">When starting the vm I see this:<br>(test@localhost)2> ssl:versions().<br>[{ssl_app,"4.1.6"},<br> {supported,[tlsv1]},<br> {available,[tlsv1,sslv3]}]<br>(</span><span class=""><span class="">test@localhost)</span>3> <br><br><br></span></div><span class="">however, when I execute the command:<br>$ openssl s_client -connect <a href="http://10.10.11.66:5151">10.10.11.66:5151</a> -ssl3<br></span></div><span class="">I see that the handshake is </span><span class=""><span class="">successful</span>:<br>..................<br><br>SSL handshake has read 2944 bytes and written 338 bytes<br>---<br>New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA<br>Server public key is 2048 bit<br>Secure Renegotiation IS supported<br>Compression: NONE<br>Expansion: NONE<br>SSL-Session:<br>    Protocol  : SSLv3<br>    Cipher    : DHE-RSA-AES256-SHA<br>    Session-ID: A4B1A5AA7DE23C5691C8C982E5EC18F577561508F951778B7B5E19E468A91749<br>    Session-ID-ctx: <br>    Master-Key: 4B04633A344F789EDB0B330BB2454EB7E19BF298461A440A04F1C6CE4F0772C02587B23127B966E84CF2571939AA4F3A<br>    Key-Arg   : None<br>    Krb5 Principal: None<br>    PSK identity: None<br>    PSK identity hint: None<br>    Start Time: 1413793000<br>    Timeout   : 7200 (sec)<br>    Verify return code: 0 (ok)<br><br><br></span><div><span class="">The handshake shouldn't be successful.<br><br></span></div><div><span class="">But </span><span class="">when I execute the command:<br>$ openssl s_client -connect <a href="http://10.10.11.66:5151">10.10.11.66:5151</a> -ssl2<br><br>No client certificate CA names sent<br>---<br>SSL handshake has read 7 bytes and written 48 bytes<br>---<br>New, (NONE), Cipher is (NONE)<br>Secure Renegotiation IS NOT supported<br>Compression: NONE<br>Expansion: NONE<br>SSL-Session:<br>    Protocol  : SSLv2<br>    Cipher    : 0000<br>    Session-ID: <br>    Session-ID-ctx: <br>    Master-Key: <br>    Key-Arg   : None<br>    Krb5 Principal: None<br>    PSK identity: None<br>    PSK identity hint: None<br>    Start Time: 1413793132<br>    Timeout   : 300 (sec)<br>    Verify return code: 0 (ok)<br>---<br><br></span></div><div><span class="">The protocol is refused because is disabled by default.<br><br></span></div><div><span class="">The same thing I want to happen with SSLv3 protocol.<br></span></div><div><span class=""><br></span></div><div><span class="">I don't know what I am missing.<br><br></span></div><div><span class="">What should I do to instruct the Erlang vm to accept ssl connections using only TLSv1 protocol?<br><br></span></div><div><span class="">the version of vm is:<br><br>Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:8:8] [rq:8] [async-threads:0] [kernel-poll:false]<br><br></span></div><div><span class="">Thank you ,<br><br></span></div><div><span class="">Bogdan<br></span></div></div>