是否可以在Ruby中启用TLS v1.2? 如果是这样,怎么样?

可以在Ruby中使用TLSv.1.2或TLSv1.1吗?

我使用OpenSSL 1.0.1c(最新版本)编译了一个Frankenstein版本的Ruby,唯一的区别是SSLv2现在是OpenSSL::SSL::SSLContext::METHODS下的一个选项

是否可以将TLSv1.2添加到该列表中?

是的,我们最近添加了TLS 1.1和1.2支持。 它ssl_versionSSLContext上设置ssl_version一样简单:

 ctx = OpenSSL::SSL::SSLContext.new ctx.ssl_version = :TLSv1_2 

您仍可以继续使用更通用的:SSLv23以实现最大的互操作性。 它将产生对等体支持的最新协议将用于连接的效果。 如果你的同伴理解TLS 1.2,那么它将被使用。 但是与上面的示例相反,如果对等方不说1.2,那么实现将无声地回退到对等方所理解的最佳/最新版本 – 而在上面的示例中,如果对等方连接将被对等方拒绝不承认1.2。

有关详细信息,还可以查看OpenSSL自己关于此主题的文档 ,您可以将有关TLSv1_method的内容转移到TLSv1_1_method和TLSv1_2_method(在Ruby中表示为:TLSv1:TLSv1_1:TLSv1_2 )。

如果您的基础OpenSSL支持TLS 1.2(> = 1.0.1),那么您就可以了。 但是,这需要当前从trunk进行Ruby构建。 但如果我们在此期间没有得到任何负面反馈,那很可能会被推迟到下一个1.9.3版本。