OpenSSL Verificar: Diferencia entre "no se puede obtener el certificado del emisor" y "no se puede obtener el certificado del emisor local"

4

De las páginas de manual :

  

2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: no puede obtener el emisor   certificado

     

no se pudo encontrar el certificado del emisor de un certificado buscado. Esto normalmente significa que la lista de certificados de confianza no es   completa.

     

20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY : no se puede obtener la información local   certificado del emisor

     

no se pudo encontrar el certificado del emisor: esto ocurre si no se puede encontrar el certificado del emisor de un certificado no confiable.

No estoy seguro de si entiendo eso. Para mí suena bastante igual. ¿Qué quieren decir con " buscar certificado " y " certificado no confiable ". Un certificado no confiable sería cualquier certificado a lo largo de la cadena, pero el certificado raíz. Un certificado de búsqueda podría ser un certificado recuperado externamente, como por ejemplo AuthoritiyInfoAccess . Pero realmente no estoy seguro aquí.

    
pregunta Hansi 04.12.2016 - 21:36
fuente

1 respuesta

2

Ambas cides de error son muy similares. Puede ver su uso en crypto/x509/x509_vfy.c línea 432 en adelante:

if (trust != X509_TRUST_TRUSTED && !bad_chain) {
    if ((chain_ss == NULL) || !ctx->check_issued(ctx, x, chain_ss)) {
        if (ctx->last_untrusted >= num)
            ctx->error = X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY;
        else
            ctx->error = X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT;
        ctx->current_cert = x;
    } else {
        …
    }
    …
 }

Por lo tanto, la única diferencia entre ambos códigos de error es si ctx->last_untrusted era > = num cuando se encontró el certificado no confiable.

Aquí, num contiene el número de certificados no confiables y last_untrusted el índice del último certificado no confiable.

La condición last_untrusted >= num ( X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY ) se cumpliría si no se encontrara una solicitud confiable para un certificado en el almacén de confianza, mientras que X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT parece ocurrir si una CA coincide, pero la validación de la cadena falló de todos modos, tal vez debido a una cadena maliciosa, pero tal vez simplemente debido a la falta de un intermediario.

    
respondido por el Ángel 05.12.2016 - 00:11
fuente

Lea otras preguntas en las etiquetas