Classe: Mongo::Socket::SSL Private

Herda:
Mongo::Socket mostrar tudo
Inclui:
OpenSSL
Definido em:
build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Encapsulador para soquetes TLS.

Desde:

  • 2.0.0

Resumo constante

Constantes herdadas de Mongo::Socket

SSL_ERROR, TIMEOUT_ERROR, TIMEOUT_PACK, WRITE_CHUNK_SIZE

Recolhimento do Resumo do atributo de instância

Atributos herdados de Mongo::Socket

#family, #options, #socket, #timeout

Recolhimento do Resumo do método de instância

Métodos herdados do Mongo::Socket

#alive?, #close, #connectable?, #connection_address, #connection_generation , #eof ?, #gets, #monitor?, #read, #summary, #write

Detalhes do construtor

#inicializar(host, porta, host_name, tempo limite, família, opções = {}) ➤ SSL

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicia um novo soquete TLS.

Exemplos:

Crie o soquete TLS.

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

Parâmetros:

  • Anfitrião (string)

    O nome do host ou endereço IP.

  • Porta (Inteiro)

    O número da porta.

  • timeout (Flutuante)

    O valor de tempo limite do soquete.

  • família (Inteiro)

    A família do soquete.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :connect_timeout (Flutuante)

    Tempo limite de conexão.

  • :connection_address (Endereço)

    Endereço da conexão que criou este soquete.

  • :connection_generação (Inteiro)

    Geração da conexão (para conexões não monitoradas) que criou esse soquete.

  • :monitor (verdadeiro | falso)

    Se esse soquete foi criado por uma conexão de monitoramento.

  • :ssl_ca_cert (string)

    O arquivo contendo certificados de autoridade de certificação concatenados usados para validar certificados passados da outra extremidade da conexão. Certificados intermediários NÃO devem ser especificados em arquivos referenciados por esta opção. Um dos seguintes :ssl_ca_cert, :ssl_ca_cert_string ou :ssl_ca_cert_object (em ordem de prioridade) é necessário ao utilizar :ssl_verify.

  • :ssl_ca_cert_object (Array <OpenSSL::X509::Certificate>)

    Uma array de objetos OpenSSL::X509::Certificate que representam os certificados de autoridade de certificação usados para validar os certificados passados da outra extremidade da conexão. Certificados intermediários NÃO devem ser especificados em arquivos referenciados por esta opção. Um dos seguintes :ssl_ca_cert, :ssl_ca_cert_string ou :ssl_ca_cert_object (em ordem de prioridade) é necessário ao utilizar :ssl_verify.

  • :ssl_ca_cert_string (string)

    Uma string contendo certificado de autoridade de certificação usada para validar certificados passados da outra extremidade da conexão. Esta opção permite passar apenas um certificado CA para o driver. Certificados intermediários NÃO devem ser especificados em arquivos referenciados por esta opção. Um dos seguintes :ssl_ca_cert, :ssl_ca_cert_string ou :ssl_ca_cert_object (em ordem de prioridade) é necessário ao utilizar :ssl_verify.

  • :ssl_cert (string)

    O arquivo de certificado usado para identificar a conexão com o MongoDB. Uma cadeia de certificados pode ser passada especificando o certificado do cliente primeiro, seguido por quaisquer certificados intermediários até o certificado da CA. O arquivo também pode conter a chave privada do certificado, que será ignorada. Esta opção, se presente, tem precedência sobre os valores de :ssl_cert_string e :ssl_cert_object

  • :ssl_cert_object (OpenSSL::X509::Certificate)

    O OpenSSL::X509::Certificate usado para identificar a conexão com o MongoDB. Somente um certificado pode ser passado por esta opção.

  • :ssl_cert_string (string)

    Uma string contendo o certificado codificado por PEM usado para identificar a conexão com o MongoDB. Uma cadeia de certificados pode ser passada especificando o certificado do cliente primeiro, seguido por quaisquer certificados intermediários até o certificado da CA. A string também pode conter a chave privada do certificado, que será ignorada. Esta opção, se presente, tem precedência sobre o valor de :ssl_cert_object

  • :ssl_key (string)

    O arquivo de chave privada usado para identificar a conexão com o MongoDB. Observe que, mesmo que a chave esteja armazenada no mesmo arquivo que o certificado, ambos precisam ser especificados explicitamente. Esta opção, se presente, tem precedência sobre os valores de :ssl_key_string e :ssl_key_object

  • :ssl_key_object (OpenSSL::PKey)

    A chave privada usada para identificar a conexão com o MongoDB

  • :ssl_key_pass_ phrase (string)

    Uma senha para a chave privada.

  • :ssl_key_string (string)

    Uma string contendo a chave privada codificada PEM usada para identificar a conexão com o MongoDB. Este parâmetro, se presente, tem precedência sobre o valor da opção:ssl_key_object

  • :ssl_verify (verdadeiro, falso)

    Se deve ser executada a validação do certificado de par e a verificação do nome do host. Observe que a decisão de validar certificados será substituída se :ssl_verify_certificate estiver definido, e a decisão de validar nomes de host será substituída se :ssl_verify_hostname estiver definido.

  • :ssl_verify_certificate (verdadeiro, falso)

    Se a validação do certificado de par deve ser executada. Esta configuração substitui :ssl_verify no que diz respeito à execução ou não da validação do certificado.

  • :ssl_verify_hostname (verdadeiro, falso)

    Se deve ser executada a validação do nome do host do par. Esta configuração substitui :ssl_verify com relação à execução ou não da validação do nome do host.

Desde:

  • 2.0.0



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', linha 103

def inicializar(Anfitrião, Porta, host_name, timeout, família, opções = {})
  super(timeout, opções)
  @host, @port, @host_name = Anfitrião, Porta, host_name
  @context = create_context(opções)
  @family = família
  @tcp_socket = ::Soquete.Novo(família, SOCK_STREAM, 0)
  começar
    @tcp_socket.setsockopt(IPPROTO_TCP, TCP_NODELEY, 1)
    set_socket_options(@tcp_socket)
    run_tls_context_hooks

    Conecte-se!
  salvar
    @tcp_socket.Fechar
    aumentar
  end
end

Detalhes do atributo da instância

#context ➤ SSLContext (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o contexto O contexto do TLS.

Retorna:

  • (SSLContext)

    contexto O contexto do TLS.

Desde:

  • 2.0.0



122
123
124
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', linha 122

def Contexto
  @context
end

#hoststring (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna host O host ao qual se conectar.

Retorna:

  • (string)

    host O host ao qual se conectar.

Desde:

  • 2.0.0



125
126
127
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', linha 125

def Anfitrião
  @host
end

#host_namestring (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna host_name O nome do host original.

Retorna:

  • (string)

    host_name O nome do host original.

Desde:

  • 2.0.0



128
129
130
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', linha 128

def host_name
  @host_name
end

#portainteiro (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna porta A porta à qual se conectar.

Retorna:

  • (Inteiro)

    porta A porta à qual se conectar.

Desde:

  • 2.0.0



131
132
133
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', linha 131

def Porta
  @port
end

Detalhes do método de instância

#readbyte ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Leia um único byte do soquete.

Exemplos:

Leia um único byte.

socket.readbyte

Retorna:

  • (Objeto)

    O byte de leitura.

Desde:

  • 2.0.0



176
177
178
179
180
181
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', linha 176

def readbyte
  map_Exceptions fazer
    byte = soquete.ler(1).bytes.to_a[0]
    byte.nada? ? aumentar(Erro EOFE) : byte
  end
end