类:Mongo::Socket::SSL Private

继承:
套接字
  • 对象
显示全部
包括:
可记录、OpenSSL
定义于:
lib/ Mongo/socket/ssl.rb

Overview

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

TLS 套接字的包装器。

由于:

  • 2.0.0

常量摘要

Loggable中包含的常量

Loggable::PREFIX

实例属性摘要折叠

实例方法摘要折叠

Loggable中包含的方法

#log_debug#log_error#log_ Fatal#log_info#log_warn#logger

构造函数详情

#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 证书的任何中间证书来传递证书链。The string may also contain the certificate's 私钥, which will be ignored, This option, if present, takes precedence over the value of :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



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/ Mongo/socket/ssl.rb', 第 102 行

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

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

实例属性详细信息

# contextSSLContext (只读)

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

返回 context TLS 上下文。

返回:

  • (SSLContext)

    context TLS 上下文。

由于:

  • 2.0.0



121
122
123
# File 'lib/ Mongo/socket/ssl.rb', 第 121 行

def 上下文
  @context
end

#主机string (只读)

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

返回托管要连接的托管。

返回:

  • ( string )

    托管要连接的托管。

由于:

  • 2.0.0



124
125
126
# File 'lib/ Mongo/socket/ssl.rb', 第 124 行

def 主机
  @host
end

# host_namestring (只读)

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

返回 host_name 原始主机名。

返回:

  • ( string )

    host_name 原始主机名。

由于:

  • 2.0.0



127
128
129
# File 'lib/ Mongo/socket/ssl.rb', 第 127 行

def host_name
  @host_name
end

# portInteger (readonly)

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

返回 port 要连接的端口。

返回:

  • ( Integer )

    port 要连接的端口。

由于:

  • 2.0.0



130
131
132
# File 'lib/ Mongo/socket/ssl.rb', 第 130 行

def 端口
  @port
end

实例方法详细信息

# readbyte对象

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

从套接字读取单个字节。

例子:

读取单个字节。

socket.readbyte

返回:

  • ( Object )

    读取的字节。

由于:

  • 2.0.0



187
188
189
190
191
192
# File 'lib/ Mongo/socket/ssl.rb', 第 187 行

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