Qué verifica el retorno: 1 significa en la salida de openssl

10

No entiendo la salida de openssl. Ejecutando openssl de la siguiente manera:

#openssl s_client -connect google.com:443 -CAfile cacert.pem < /dev/null

En última instancia, todo está bien porque el certificado de la entidad final se verificó OK: Verify return code: 0 (ok)

pero ¿qué pasa con la verificación return:1al comienzo de la salida para los intermedios a continuación? ¿Qué significa eso o para qué sirve?

profundidad = 3 C = EE. UU., O = Equifax, OU = Equifax Secure Certificate Authority verifica la devolución: 1
profundidad = 2 C = EE. UU., O = GeoTrust Inc., CN = GeoTrust Global CA verificar devolución: 1
profundidad = 1 C = EE. UU., O = Google Inc, CN = Autoridad de Internet de Google G2 verificar devolución: 1
profundidad = 0 C = EE. UU., ST = California, L = Mountain View, O = Google Inc, CN = google.com verificar devolución: 1

---
Cadena de certificados
 0 s: / C = US / ST = California / L = Mountain View / O = Google Inc / CN = google.com
   i: / C = US / O = Google Inc / CN = Autoridad de Internet de Google G2
 1 s: / C = US / O = Google Inc / CN = Google Internet Authority G2
   i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
   i: / C = US / O = Equifax / OU = Equifax Secure Certificate Authority
---


jouell
fuente

Respuestas:

13

La función de devolución de llamada de verificación (utilizada para realizar la verificación final de la aplicabilidad del certificado para el uso particular) pasa un campo mediante SSL llamado preverify_okaycampo que indica si la cadena de certificados pasó las verificaciones básicas que se aplican a todos los casos. A 1significa que estos controles pasaron.

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

La función generate_callback se usa para controlar el comportamiento cuando se establece el indicador SSL_VERIFY_PEER. Debe ser suministrado por la aplicación y recibe dos argumentos: preverify_ok indica si la verificación del certificado en cuestión fue aprobada (preverify_ok = 1) o no (preverify_ok = 0).

Esto es lo que verify return:1está mostrando.

Puede consultar el código si desea más detalles:

int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
    {
    [ snip ]
    BIO_printf(bio_err,"verify return:%d\n",ok);
    return(ok);
    }
David Schwartz
fuente
También el documento completo vive aquí: openssl.org/docs/manmaster/ssl/SSL_CTX_set_verify.html
jouell