Clase: Mongo::Socket::SSL Privado

Hereda:
Socket
  • Objeto
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

Loggable::PREFIX

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Métodos incluidos desde Registrable

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

Detalles del Constructor

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

Este método es parte de una API privada. Se debe evitar el uso de este método 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 socket.

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

    Las opciones.

Opciones Hash (options):

  • timeout_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 (Integer)

    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.

  • archivo CA de seguridad SSL (string)

    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 ssl_ca_cert (Array<OpenSSL::X509::Certificate>)

    Un arreglo de objetos OpenSSL::X509::Certificate que representa los certificados de autoridad de certificación utilizados para validar los certificados proporcionados desde el otro extremo de la conexión. Los certificados intermedios NO deben especificarse en los archivos referenciados por esta opción. Uno de :ssl_ca_cert, :ssl_ca_cert_string o :ssl_ca_cert_object (en orden de prioridad) es obligatorio al utilizar :ssl_verify.

  • :ssl_ca_cert_string (string)

    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 (string)

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

  • Certificado SSL (OpenSSL::X509::Certificate)

    El OpenSSL::X509::Certificate utilizado para identificar la conexión contra MongoDB. Solo se puede pasar un certificado a través de esta opción.

  • :ssl_cert_string (string)

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

  • :ssl_key (string)

    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_paso_de_clave_ssl (string)

    Una frase secreta para la llave privada.

  • Cadena de clave SSL (string)

    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 realiza la validación del certificado de par. Esta configuración anula :ssl_verify con 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 de igual a igual. Esta configuración anula :ssl_verify en lo que respecta a si se realiza la validación del nombre de host.

Desde:

  • 2.0.0



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

def inicializar(host, Puerto, host_name, tiempo de espera, familia, opciones = {})
  super(tiempo de espera, opciones)
  @host, @port, @host_name = host, Puerto, host_name
  @contexto = create_context(opciones)
  @family = 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 StandardError
    @tcp_socket.Cerrar
    propagar
  end
end

Detalles de atributo de instancias

#contextoSSLContext (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método 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



121
122
123
# Archivo 'lib/mongo/socket/ssl.rb', línea 121

def context
  @contexto
end

#hostString (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método 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



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

def host
  @host
end

#nombre_del_hoststring (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método 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



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

def host_name
  @host_name
end

#puertoEntero (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el puerto El puerto al que conectarse.

Devuelve:

  • (Número entero)

    puerto El puerto al que conectarse.

Desde:

  • 2.0.0



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

def Puerto
  @port
end

Detalles del método de instancia

#readbyteObjeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Lee un único byte del socket.

Ejemplos:

Leer un solo byte.

socket.readbyte

Devuelve:

  • (objeto)

    El byte leído.

Desde:

  • 2.0.0



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

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