20 votes

Que signifie "verify return:1" dans la sortie openssl ?

Je ne comprends pas la sortie openssl. Je lance openssl comme suit :

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

En fin de compte, tout va bien puisque le certificat de l'entité finale a été vérifié : Verify return code: 0 (ok)

mais qu'en est-il de la vérification return:1 au début de la production des intermédiaires ci-dessous ? Qu'est-ce que cela signifie ou quel est son intérêt ?

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
---

21voto

David Schwartz Points 31009

La fonction de rappel de vérification (utilisée pour effectuer la vérification finale de l'applicabilité du certificat pour l'utilisation particulière) se voit transmettre par SSL un champ appelé preverify_okay qui indique si la chaîne de certificats a passé les contrôles de base qui s'appliquent dans tous les cas. A 1 signifie que ces contrôles ont été effectués avec succès.

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

La fonction verify_callback est utilisée pour contrôler le comportement lorsque l'indicateur SSL_VERIFY_PEER est activé. Elle doit être fournie par l'application et reçoit deux arguments : preverify_ok indique si la vérification du certificat en question a été réussie (preverify_ok=1) ou non (preverify_ok=0).

C'est ce que la verify return:1 s'affiche.

Vous pouvez consulter le code si vous souhaitez plus de détails :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X