是否可以将TLSv.1.2或TLSv1.1与Ruby一起使用?
我使用OpenSSL 1.0.1c(最新版本)编译了一个Frankenstein版本的Ruby,唯一的区别是SSLv2现在是OpenSSL::SSL::SSLContext::METHODS
下的一个选项
是否可以将TLSv1.2添加到该列表中?
答案 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发布。