类:Mongo::Socket::SSL Private

继承:
Mongo::Socket 显示全部
包括:
OpenSSL
定义于:
构建/ruby-driver-v2.19/lib/ mongo /socket/ssl.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

TLS 套接字的包装器。

由于:

  • 2.0.0

常量摘要

Mongo::Socket继承的常量

SSL_ERRORTIMEOUT_ERRORTIMEOUT_PACKWRITE_CHUNK_SIZE

实例属性摘要折叠

Mongo::Socket继承的属性

#family#options#socket#timeout

实例方法摘要折叠

Mongo::Socket继承的方法

#alive?#close#connectable?#connection_address#connection_Generation#eof? , #gets , #monitor ? , #read , #summary , # 写入

构造函数详情

#initialize (托管, port, host_name, timeout, family, options = {}) ⇒ SSL

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

初始化新的 TLS 套接字。

例子:

创建 TLS 套接字。

SSL.new('::1', 27017, 30)

参数:

  • 主机 ( string )

    主机名或IP解决。

  • 端口 ( Integer )

    端口号。

  • 超时 (浮点)

    套接字超时值。

  • 家庭情况 ( Integer )

    套接字系列。

  • 选项 哈希 (默认为: {}

    选项。

选项哈希 ( options ):

  • :connect_timeout 浮点

    连接超时。

  • :connection_address 地址

    创建此套接字的连接地址。

  • :connection_Generation 整数

    创建此套接字的连接(针对非监控连接)的生成。

  • :monitor ( true | false )

    此套接字是否由监控连接创建。

  • :ssl_ca_cert string

    包含连接的证书颁发机构证书的文件,用于验证从连接另一端传递的证书。 不应在此选项引用的文件中指定中间证书。 使用 :ssl_verify 时,需要 :ssl_ca_cert、:ssl_ca_cert_string 或 :ssl_ca_cert_object(按优先级顺序)之一。

  • :ssl_ca_cert_object ( Array<OpenSSL::X 509 ::Certificate> )

    OpenSSL::X 509 ::Certificate 对象数组,表示证书颁发机构证书,用于验证从连接另一端传递的证书。 不应在此选项引用的文件中指定中间证书。 使用 :ssl_verify 时,需要 :ssl_ca_cert、:ssl_ca_cert_string 或 :ssl_ca_cert_object(按优先级顺序)之一。

  • :ssl_ca_cert_string string

    包含证书颁发机构证书的string ,用于验证从连接另一端传递的证书。 此选项允许仅将一个 CA 证书传递给驱动程序。 不应在此选项引用的文件中指定中间证书。 使用 :ssl_verify 时,需要 :ssl_ca_cert、:ssl_ca_cert_string 或 :ssl_ca_cert_object(按优先级顺序)之一。

  • :ssl_cert string

    用于识别针对 MongoDB 的连接的证书文件。 可以通过先指定客户端证书,然后指定直到 CA 证书的任何中间证书来传递证书链。 该文件还可能包含证书的私钥,但该私钥将被忽略。 此选项(如果存在)优先于 :ssl_cert_string 和 :ssl_cert_object 的值

  • :ssl_cert_object ( OpenSSL::X 509 ::Certificate )

    用于识别针对 MongoDB 的连接的 OpenSSL::X 509 ::Certificate。 通过此选项只能传递一个证书。

  • :ssl_cert_string string

    包含 PEM 编码证书的string ,用于标识针对MongoDB的连接。 可以通过先指定客户端证书,然后指定直到 CA 证书的任何中间证书来传递证书链。 该string还可能包含证书的私钥,但该私钥将被忽略。此选项(如果存在)优先于 :ssl_cert_object 的值

  • :ssl_key string

    用于识别针对 MongoDB 的连接的私钥文件。 请注意,即使密钥与证书存储在同一文件中,也需要显式指定两者。 此选项(如果存在)优先于 :ssl_key_string 和 :ssl_key_object 的值

  • :ssl_key_object ( OpenSSL::PKey )

    用于识别针对 MongoDB 的连接的私钥

  • :ssl_key_pass_phrase string

    私钥的密码。

  • :ssl_key_string string

    包含 PEM 编码私钥的string ,用于识别针对MongoDB的连接。 此参数(如果存在)优先于 :ssl_key_object 选项的值

  • :ssl_verify ( true , false )

    是否执行对等证书验证和主机名验证。 请注意,如果 :ssl_verify_certificate 已设置,则是否验证证书的决策将被覆盖;如果 :ssl_verify_hostname 已设置,则是否验证主机名的决策将被覆盖。

  • :ssl_verify_certificate ( true , false )

    是否执行对等证书验证。 在是否执行证书验证方面,此设置会覆盖 :ssl_verify。

  • :ssl_verify_hostname ( true , false )

    是否执行对等主机名验证。 在是否执行主机名验证方面,此设置会覆盖 :ssl_verify。

由于:

  • 2.0.0



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket/ssl.rb', line 103

def 初始化(主机, 端口, host_name, 超时, 家庭情况, 选项 = {})
  (超时, 选项)
  @host, @port, @host_name = 主机, 端口, host_name
  @context = create_context(选项)
  @family = 家庭情况
  @tcp_socket = ::套接字.new(家庭情况, SOCK_STREAM, 0)
  开始
    @tcp_socket.setsockopt(IPPROTO_TCP, TCP_NODELAY, 1)
    set_socket_options(@tcp_socket)
    run_tls_context_hooks

    连接!
  救援
    @tcp_socket.关闭
    提高
  end
end

实例属性详细信息

# contextSSLContext (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 context TLS 上下文。

返回:

  • (SSLContext)

    context TLS 上下文。

由于:

  • 2.0.0



122
123
124
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket/ssl.rb', line 122

def 上下文
  @context
end

#主机string (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回托管要连接的托管。

返回:

  • ( string )

    托管要连接的托管。

由于:

  • 2.0.0



125
126
127
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket/ssl.rb', line 125

def 主机
  @host
end

# host_namestring (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 host_name 原始主机名。

返回:

  • ( string )

    host_name 原始主机名。

由于:

  • 2.0.0



128
129
130
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket/ssl.rb', line 128

def host_name
  @host_name
end

# portInteger (readonly)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 port 要连接的端口。

返回:

  • ( Integer )

    port 要连接的端口。

由于:

  • 2.0.0



131
132
133
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket/ssl.rb', line 131

def 端口
  @port
end

实例方法详细信息

# readbyte对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

从套接字读取单个字节。

例子:

读取单个字节。

socket.readbyte

返回:

  • ( Object )

    读取的字节。

由于:

  • 2.0.0



176
177
178
179
180
181
# File 'build/Ruby-driver-v 2.19 /lib/mongo/socket/ssl.rb', line 176

def readbyte
  map_Exceptions do
    byte = 套接字.(1).字节.to_a[0]
    byte.nil? ? 提高(EOFError) : byte
  end
end