Clase: Mongo::Socket::SSL Privado

Hereda:
Mongo::Socket Mostrar todo
Incluye:
Loggable, OpenSSL
Definido en:
lib/mongo/socket/ssl.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Contenedor para sockets TLS.

Desde:

  • 2.0.0

Resumen constante

Constantes incluidas desde Loggable

Registrable::PREFIX

Constantes heredadas de Mongo::Socket

SSL_ERROR, TIMEOUT_ERROR, TIMEOUT_PACK, WRITE_CHUNK_SIZE

Resumen de atributos de la instancia colapsar

Atributos heredados de Mongo::Socket

#familia, #opciones, #socket, #timeout

Resumen del método de instancia colapsar

Métodos incluidos desde Registrable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Métodos heredados de Mongo::Socket

#alive?, #close, #connectable?, #connection_address, #connection_generation, #eof?, #gets, #supervisar?, #pipe, #read, #summary, #guardar

Detalles del constructor

#initialize(host, puerto, nombre_host, tiempo_de_espera, familia, opciones = {}) ⇒ SSL

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializa un nuevo socket TLS.

Ejemplos:

Crea el socket TLS.

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

Parámetros:

  • host (string)

    El nombre de host o la dirección IP.

  • Puerto (Número entero)

    El número de puerto.

  • tiempo de espera (Float)

    El valor de tiempo de espera del socket.

  • familia (Número entero)

    La familia de sockets.

  • opciones (Hash) (por defecto: {})

    Las opciones.

Opciones Hash (options):

  • :tiempo de espera de conexión (Flotante)

    Tiempo de espera de conexión.

  • Dirección de conexión ( DIRECCIÓN)

    Dirección de la conexión que creó este socket.

  • :connection_generation (Entero)

    Generación de la conexión (para conexiones que no son de supervisión) que creó este socket.

  • supervisar (true | false)

    Si este socket fue creado por una conexión de supervisión.

  • :certificado ssl_ca_cert (Cadena)

    El archivo que contiene los certificados de autoridad de certificación concatenados utilizados para validar los certificados recibidos del otro extremo de la conexión. Los certificados intermedios NO deben especificarse en los archivos referenciados por esta opción. Se requiere uno de :ssl_ca_cert, :ssl_ca_cert_string o :ssl_ca_cert_object (en orden prioritario) al utilizar :ssl_verify.

  • :objeto de certificado SSL CA (Array<OpenSSL::X509::Certificate>)

    Una matriz de objetos OpenSSL::X509::Certificate que representan los certificados de la autoridad de certificación utilizados para validar los certificados transmitidos desde el otro extremo de la conexión. Los certificados intermedios NO deben especificarse en los archivos referenciados por esta opción. Se requiere :ssl_ca_cert, :ssl_ca_cert_string o :ssl_ca_cert_object (en orden de prioridad) al usar :ssl_verify.

  • :ssl_ca_cert_string (Cadena)

    Una string que contiene un certificado de autoridad de certificación utilizada para validar información que se pasa desde el otro extremo de la conexión. Esta opción permite pasar solo un certificado CA al controlador. Los certificados intermedios NO deben especificarse en los archivos a los que hace referencia esta opción. Se requiere uno de :ssl_ca_cert, :ssl_ca_cert_string o :ssl_ca_cert_object (en orden de prioridad) cuando se utiliza :ssl_verify.

  • :certificado_ssl (Cadena)

    El archivo de certificado que se utiliza para identificar la conexión con MongoDB. Se puede pasar una cadena de certificados especificando primero el certificado cliente, seguido de cualquier certificado intermedio hasta el certificado CA. El archivo también puede contener la llave privada del certificado, la cual será ignorada. Esta opción, si está presente, prevalece sobre los valores de :ssl_cert_string y :ssl_cert_object.

  • :objeto de certificado SSL (OpenSSL::X509::Certificate)

    El certificado OpenSSL::X509::Certificate utilizado para identificar la conexión con MongoDB. Solo se puede pasar un certificado mediante esta opción.

  • :ssl_cert_string (Cadena)

    Una cadena que contiene el certificado codificado en PEM utilizado para identificar la conexión con MongoDB. Se puede pasar una cadena de certificados especificando primero el certificado del cliente, seguido de cualquier certificado intermedio hasta el certificado de la CA. La cadena también puede contener la clave privada del certificado, que se ignorará. Esta opción, si está presente, prevalece sobre el valor de :ssl_cert_object.

  • :ssl_key (Cadena)

    El archivo de clave privada que se utiliza para identificar la conexión con MongoDB. Ten en cuenta que, aunque la clave se almacene en el mismo archivo que el certificado, es necesario especificar ambos explícitamente. Esta opción, si está presente, tiene prioridad sobre los valores de :ssl_key_string y :ssl_key_object

  • :ssl_key_object (OpenSSL::PKey)

    La clave privada utilizada para identificar la conexión con MongoDB

  • :frase_de_contraseña_de_clave_ssl (Cadena)

    Una frase secreta para la llave privada.

  • Cadena de clave SSL (Cadena)

    Una string que contiene la llave privada codificada PEM que se utiliza para identificar la conexión con MongoDB. Este parámetro, si está presente, tiene prioridad sobre el valor de la opción :ssl_key_object

  • Verificación SSL (verdadero, falso)

    Si se debe realizar la validación del certificado de par y la verificación del nombre de host. Tenga en cuenta que la decisión de validar los certificados se anulará si :ssl_verify_certificate está configurado, y la decisión de validar los nombres de host se anulará si :ssl_verify_hostname está configurado.

  • ssl_verificar_certificado (verdadero, falso)

    Si se debe realizar la validación del certificado de pares. Esta configuración anula :ssl_verify respecto a si se realiza la validación del certificado.

  • :ssl_verify_hostname (verdadero, falso)

    Si se debe realizar la validación del nombre de host del par. Esta configuración anula :ssl_verify respecto a si se realiza la validación del nombre de host.

Desde:

  • 2.0.0



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Archivo 'lib/mongo/socket/ssl.rb', línea 104

def inicializar(host, Puerto, nombre_de_host, tiempo de espera, familia, opciones = {})
  super(tiempo de espera, opciones)
  @host, @puerto, @nombre_de_host = host, Puerto, nombre_de_host
  @contexto = crear_contexto(opciones)
  @familia = familia
  @tcp_socket = ::Socket.Nuevo(familia, SOCK_STREAM, 0)
  begin
    @tcp_socket.setsockopt(IPPROTO_TCP, TCP_NODELAY, 1)
    set_socket_options(@tcp_socket)
    run_tls_context_hooks

    ¡conectar!
  rescate
    @tcp_socket.Cerrar
    propagar
  end
end

Detalles de los atributos de instancia

#contextoSSLContext (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve contexto El contexto TLS.

Devuelve:

  • (SSLContext)

    context El contexto de TLS.

Desde:

  • 2.0.0



123
124
125
# Archivo 'lib/mongo/socket/ssl.rb', línea 123

def context
  @contexto
end

#hostCadena (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Retorna host El host al que conectar.

Devuelve:

  • (string)

    host El host al que conectarse.

Desde:

  • 2.0.0



126
127
128
# Archivo 'lib/mongo/socket/ssl.rb', línea 126

def host
  @host
end

#nombre_del_hoststring (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve host_name El nombre de host original.

Devuelve:

  • (string)

    host_name El nombre original del host.

Desde:

  • 2.0.0



129
130
131
# Archivo 'lib/mongo/socket/ssl.rb', línea 129

def nombre_de_host
  @nombre_de_host
end

#puertoEntero (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve puerto El puerto al que conectarse.

Devuelve:

  • (Número entero)

    puerto El puerto al que conectarse.

Desde:

  • 2.0.0



132
133
134
# Archivo 'lib/mongo/socket/ssl.rb', línea 132

def Puerto
  @puerto
end

Detalles del método de instancia

#readbyteObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Leer un solo byte del socket.

Ejemplos:

Leer un solo byte.

socket.readbyte

Devuelve:

  • (objeto)

    El byte leído.

Desde:

  • 2.0.0



188
189
190
191
192
193
# Archivo 'lib/mongo/socket/ssl.rb', línea 188

def readbyte
  map_exceptions hacer
    byte = enchufe.Lea(1).bytes.to_a[0]
    byte.nil? ? propagar(Error de EOFE) : byte
  end
end