Clase: Mongo::Socket::OcspVerifier Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Socket::OcspVerifier
- Incluye:
- Registrable
- Definido en:
- lib/mongo/socket/ocsp_verifier.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.
Verificador de endpoint OCSP.
Después de establecer una conexión TLS, este verificador inspecciona el certificado presentado por el servidor y, si el certificado contiene un URI OCSP, realiza la solicitud de estado OCSP en el URI especificado (siguiendo hasta 5 redirecciones) para verificar el estado del certificado.
Resumen constante
Constantes incluidas desde Loggable
Resumen de atributos de la instancia colapsar
- #ca_cert ⇒ Objeto Solo lectura privado
- #cert ⇒ Object Solo lectura privado
- #cert_store ⇒ Objeto Solo lectura privado
- #host_name ⇒ Objeto Solo lectura privado
- #opciones ⇒ Objeto Solo lectura privado
Resumen del método de instancia colapsar
- #cert_id ⇒ Objeto privado
-
#inicializar(host_name, cert, ca_cert, cert_store, **opts) ⇒ OcspVerifier
constructor
privado
Una nueva instancia de OcspVerifier.
-
#ocsp_uris ⇒ Array<String>
privado
URI de OCSP en el certificado de servidor especificado.
- #timeout ⇒ Objecto privado
-
#verificar ⇒ verdadero | falso
privado
Si se verificó el certificado.
- #verificar_con_cache ⇒ Objeto privado
Métodos incluidos desde Registrable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Detalles del constructor
#initialize(host_name, cert, ca_cert, cert_store, **opts) ⇒ OcspVerifier
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 una nueva instancia de OcspVerifier.
51 52 53 54 55 56 57 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 51 def inicializar(nombre_de_host, certificado, ca_cert, cert_store, **opta) @nombre_de_host = nombre_de_host @cert = certificado @ca_cert = ca_cert @cert_store = cert_store @options = opta end |
Detalles de los atributos de instancia
#ca_cert ⇒ Objeto (sólo 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.
61 62 63 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 61 def ca_cert @ca_cert end |
#cert ⇒ Objeto (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.
60 61 62 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 60 def certificado @cert end |
#cert_store ⇒ objeto (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.
62 63 64 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 62 def cert_store @cert_store end |
#host_name ⇒ Objeto (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.
59 60 61 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 59 def nombre_de_host @nombre_de_host end |
#opciones ⇒ Objeto (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.
63 64 65 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 63 def @options end |
Detalles del método de instancia
#cert_id ⇒ objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
91 92 93 94 95 96 97 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 91 def cert_id @cert_id ||= OpenSSL::OCSP::CertificateId.Nuevo( certificado, ca_cert, OpenSSL::Resumen::SHA1.Nuevo, ) end |
#ocsp_uris ⇒ Array<String>
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 los URI de OCSP en el certificado de servidor especificado.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 70 def ocsp_uris @ocsp_uris ||= begin # https://tools.ietf.org/html/rfc3546#section-2.3 # prohíbe múltiples extensiones con el mismo oid. ext = certificado.extensions.detectar hacer |ext| ext.oid == 'authorityInfoAccess' end si ext # Nuestros certificados de prueba tienen múltiples URIs OCSP. ext.Valor.división("\n").Seleccionar hacer |línea| línea.start_with?('OCSP - URI:') end.map hacer |línea| línea.división(':', 2).último end else [] end end end |
#tiempo de espera ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
65 66 67 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 65 def tiempo de espera [:timeout] || 5 end |
#verify ⇒ true | false
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 si se verificó el certificado.
122 123 124 125 126 127 128 129 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 122 def verificar handle_exceptions hacer return false si ocsp_uris.¿vacío? resp, errors = do_verify respuesta_ocsp_de_retorno(resp, errors) end end |
#verificar_con_cache ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 99 def verificar_con_caché handle_exceptions hacer return false si ocsp_uris.¿vacío? resp = OcspCache.Obtener(cert_id) si resp return respuesta_ocsp_de_retorno(resp) end resp, errors = do_verify si resp OcspCache.conjunto(cert_id, resp) end respuesta_ocsp_de_retorno(resp, errors) end end |