如何获取Ruby SSLContext对象的ssl_version

时间:2017-05-25 23:35:51

标签: ruby ssl openssl sslcontext

我正在研究OpenSSL的SSLContext,并创建了一个这样的Ruby OpenSSL对象:

0> ssl_object = OpenSSL::SSL::SSLContext.new("TLSv1_2_client")
=> #<OpenSSL::SSL::SSLContext:0x7acec6db>

创建了SSLContext对象的实例。我可以使用:

更改此SSLContext对象
ssl_object.ssl_version="SSLv2_3"

但是,我想了解/得到ssl_version ssl_object。我该怎么做?

当我这样做时:

0> ssl_object.ssl_version
=> undefined method `ssl_version' for #<OpenSSL::SSL::SSLContext:0x38106bc4>
Did you mean?  ssl_version=

根据documentation,只有一个二传手,而不是一个吸气剂。

1 个答案:

答案 0 :(得分:2)

看起来你可以创建一个假套接字:

OpenSSL::SSL::SSLSocket.new(
  UNIXSocket.pair.first, 
  OpenSSL::SSL::SSLContext.new("SSLv3")
).ssl_version
=> "SSLv3"