2

我现在正在研究 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=

根据文档,只有一个 setter,而不是一个 getter。

4

1 回答 1

2

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

OpenSSL::SSL::SSLSocket.new(
  UNIXSocket.pair.first, 
  OpenSSL::SSL::SSLContext.new("SSLv3")
).ssl_version
=> "SSLv3"
于 2017-05-26T00:04:35.183 回答