Classe: Mongo::Socket::OcspVerifier Private
- Herda:
-
Objeto
- Objeto
- Mongo::Socket::OcspVerifier
- Inclui:
- Logável
- Definido em:
- lib/mongo/socket/ocsp_verifier.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.
Verificador de endpoint OCSP.
Depois que uma conexão TLS é estabelecida, esse verificador inspeciona o certificado apresentado pelo servidor e, se o certificado contiver um URI OCSP, executa a solicitação de status OCSP para o URI especificado (seguindo até 5 redirecionamentos) para verificar o status do certificado.
Definido sob namespace
Classes: Resposta
Resumo constante
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
- #ca_cert ➤ Objeto Somente leitura privado
- #cert ➤ Objeto Somente leitura privado
- #cert_store ➤ Objeto Somente leitura privado
- #host_name ➤ Objeto Somente leitura privado
- #opções ➤ Objeto Somente leitura privado
Recolhimento do Resumo do método de instância
- #cert_id ➤ Objeto privado
-
#initialize(host_name, cert, ca_cert, cert_store, **opts) ➤ OcspVerifier
construtor
privado
Uma nova instância do OcspVerifier.
-
#ocsp_uris ➤ Array<String>
privado
URIs de OCSP no certificado de servidor especificado.
- #timeout ➤ Object privado
-
#verify ➤ true | false
privado
Se o certificado foi verificado.
- #verify_with_cache ➤ Objeto privado
Métodos incluídos no Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger
Detalhes do construtor
#initialize(host_name, cert, ca_cert, cert_store, **opts) ➤ OcspVerifier
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 uma nova instância do OcspVerifier.
64 65 66 67 68 69 70 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 64 def inicializar(host_name, cert, ca_cert, cert_store, **opciona) @host_name = host_name @cert = cert @ca_cert = ca_cert @cert_store = cert_store @opções = opciona end |
Detalhes do atributo da instância
#ca_cert ➤ Objeto (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.
72 73 74 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 72 def ca_cert @ca_cert end |
#cert ➤ Object (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.
72 73 74 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 72 def cert @cert end |
#cert_store ➤ Objeto (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.
72 73 74 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 72 def cert_store @cert_store end |
#host_name ➤ Object (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.
72 73 74 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 72 def host_name @host_name end |
#opções Objeto (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.
72 73 74 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 72 def @opções end |
Detalhes do método de instância
#cert_id ➤ 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.
100 101 102 103 104 105 106 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 100 def cert_id @cert_id ||= OpenSSL::OCSP::CertificateId.Novo( cert, ca_cert, OpenSSL::Digest.Novo('SHA1') ) end |
#ocsp_uris ➤ Array<String>
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 URIs OCSP no certificado de servidor especificado.
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 79 def ocsp_uris @ocsp_uris ||= começar # https://tools.ietf.org/html/rfc3546#section-2.3 # proíbe várias extensões com o mesmo oid. ext = cert.Extensões.detectar fazer |ext| ext.vazio == 'AuthorityInfoAccess' end se ext # Nossos certificados de teste têm vários URIs OCSP. ext.valor.dividir("\n").selecione fazer |linha| linha.start_with?('OCSP - URI:') end.map fazer |linha| linha.dividir(':', 2).último end mais [] end end end |
#timeout ➤ Object
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.
74 75 76 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 74 def timeout [:timeout] || 5 end |
#verify ➤ true | false
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 se o certificado foi verificado.
127 128 129 130 131 132 133 134 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 127 def verificar handle_Exceptions fazer Método false se ocsp_uris.vazio? res, errors = do_verify return_ocsp_response(res, errors) end end |
#verify_with_cache ➤ 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.
108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# Arquivo 'lib/mongo/socket/ocsp_verifier.rb', linha 108 def verify_with_cache handle_Exceptions fazer Método false se ocsp_uris.vazio? res = OcspCache.obter(cert_id) Método return_ocsp_response(res) se res res, errors = do_verify OcspCache.set(cert_id, res) se res return_ocsp_response(res, errors) end end |