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

时间:2012-06-15 22:44:26

标签: ruby openssl ssl

是否可以将TLSv.1.2或TLSv1.1与Ruby一起使用?

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

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

1 个答案:

答案 0 :(得分:35)

是的,我们添加了TLS 1.1& 1.2支持recently。就像在ssl_version上设置SSLContext一样简单:

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

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

有关详细信息,请查看有关该主题的OpenSSL's own docs,您可以将有关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发布。