是否可以将 TLSv.1.2 或 TLSv1.1 与 Ruby 一起使用?
我已经使用 OpenSSL 1.0.1c(可用的最新版本)编译了 Ruby 的 Frankenstein 版本,唯一的区别是 SSLv2 现在是下面的一个选项OpenSSL::SSL::SSLContext::METHODS
是否可以将 TLSv1.2 添加到该列表中?
是的,我们最近添加了 TLS 1.1 和 1.2 支持。就像设置ssl_version
你的一样简单SSLContext
:
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 支持),那么您就可以开始了。但是,目前这需要从主干构建 Ruby。但如果我们在此期间没有收到任何负面反馈,它很可能会被向后移植到下一个 1.9.3 版本。