Classe: Mongo::Socket::OcspVerifier Private
- Herda:
-
Objeto
- Objeto
- Mongo::Socket::OcspVerifier
- Inclui:
- Logável
- Definido em:
- build/ruby-driver-v2.19/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.
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.
51 52 53 54 55 56 57 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 51 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.
61 62 63 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 61 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.
60 61 62 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 60 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.
62 63 64 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 62 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.
59 60 61 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 59 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.
63 64 65 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 63 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.
91 92 93 94 95 96 97 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 91 def cert_id @cert_id ||= OpenSSL::OCSP::CertificateId.Novo( cert, ca_cert, OpenSSL::Digest::SHA1.Novo, ) 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.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 70 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.
65 66 67 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 65 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.
122 123 124 125 126 127 128 129 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 122 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.
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket/ocsp_verifier.rb', linha 99 def verify_with_cache handle_Exceptions fazer Método false se ocsp_uris.vazio? res = OcspCache.obter(cert_id) se res Método return_ocsp_response(res) end res, errors = do_verify se res OcspCache.set(cert_id, res) end return_ocsp_response(res, errors) end end |