O que verifica o retorno: 1 significa na saída openssl

8

Eu não entendo a saída openssl. Executando o openssl da seguinte forma:

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

Em última análise, tudo está bem em que o certificado da entidade final foi verificado OK: Verify return code: 0 (ok)

mas e quanto a verificar return:1 no início da saída para os intermediários abaixo? O que isso significa ou qual é o seu ponto?

depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2 verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = google.com verify return:1

---
Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com
   i:/C=US/O=Google Inc/CN=Google Internet Authority 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
---


    
por jouell 08.01.2016 / 01:42

1 resposta

9

A função de callback de verificação (usada para executar a verificação final da aplicabilidade do certificado para o uso específico) é passada a um campo SSL chamado preverify_okay field que indica se a cadeia de certificados passou nas verificações básicas que se aplicam a todos casos. Um 1 significa que essas verificações foram aprovadas.

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

The verify_callback function is used to control the behaviour when the SSL_VERIFY_PEER flag is set. It must be supplied by the application and receives two arguments: preverify_ok indicates, whether the verification of the certificate in question was passed (preverify_ok=1) or not (preverify_ok=0).

Isso é o que o verify return:1 está mostrando.

Você pode verificar o código se quiser mais detalhes:

int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
    {
    [ snip ]
    BIO_printf(bio_err,"verify return:%d\n",ok);
    return(ok);
    }
    
por 08.01.2016 / 09:28

Tags