Clase: Mongo::Socket::OcspVerifier Privado
- Hereda:
-
Objeto
- Objeto
- Verificador Mongo::Socket::Ocsp
- Incluye:
- Registrable
- Definido en:
- lib/mongo/socket/ocsp_verifier.rb
Overview
Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Verificador de puntos finales OCSP.
Una vez establecida una conexión TLS, este verificador inspecciona el certificado presentado por el servidor y, si el certificado contiene una URI OCSP, realiza la solicitud de estado OCSP a la URI especificada (siguiendo hasta 5 redirecciones) para verificar el estado del certificado.
Resumen constante
Constantes incluidas desde Loggable
Colapso delresumen de atributos de instancia
- #ca_cert ⇒ Objeto solo lectura privada
- #cert ⇒ Objeto solo lectura privada
- #cert_store ⇒ Objeto solo lectura privada
- #nombre_de_host ⇒ Objeto solo lectura privada
- #opciones ⇒ Objeto solo lectura privada
Colapso del resumen del método de instancia
- #cert_id ⇒ Objeto privada
-
#inicializar(nombre_de_host, certificado, certificado_de_ca, almacén_de_certificados, **opciones) ⇒ OcspVerifier
constructor
privada
Una nueva instancia de OcspVerifier.
-
#ocsp_uris ⇒ Array<String>
privada
URI de OCSP en el certificado de servidor especificado.
- #tiempo de espera ⇒ Objeto privada
-
#verificar ⇒ verdadero | falso
privada
Si el certificado fue verificado.
- #verificar_con_cache ⇒ Objeto privada
Métodos incluidos en Loggable
#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, certificado ca, cert_store, **opta) @nombre_de_host = nombre_de_host @cert = certificado @ca_cert = certificado ca @cert_store = cert_store @opciones = opta end |
Detalles de los atributos de instancia
#ca_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.
61 62 63 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 61 def certificado ca @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 @opciones 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, certificado ca, 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 las 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.extensiones.detectar hacer |ext| ext.oid == 'Acceso a información de autoridad' end Si ext # Nuestros certificados de prueba tienen múltiples URI OCSP. ext.valor.división("\n").Seleccione hacer |línea| línea.empezar_con?('OCSP - URI:') end.map hacer |línea| línea.división(':', 2).última 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 |
#verificar ⇒ verdadero | falso
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 si el certificado fue verificado.
122 123 124 125 126 127 128 129 |
# Archivo 'lib/mongo/socket/ocsp_verifier.rb', línea 122 def verificar manejar_excepciones 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é manejar_excepciones 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 |