Que vérifie le retour: 1 signifie dans la sortie openssl

10

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

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

En fin de compte, tout va bien dans la mesure où 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:1au début de la sortie pour les intermédiaires ci-dessous? Qu'est-ce que cela signifie ou à quoi ça sert?

profondeur = 3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority vérifier le retour: 1
profondeur = 2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA vérifier le retour: 1
profondeur = 1 C = US, O = Google Inc, CN = Google Internet Authority G2 vérifier le retour: 1
profondeur = 0 C = États-Unis, ST = Californie, L = Mountain View, O = Google Inc, CN = google.com vérifier le retour: 1

---
Chaîne de certificats
 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
---


jouell
la source

Réponses:

13

La fonction de rappel de vérification (utilisée pour effectuer la vérification finale de l'applicabilité du certificat pour une utilisation particulière) reçoit un champ par SSL appelé preverify_okaychamp qui indique si la chaîne de certificats a réussi les vérifications de base qui s'appliquent à tous les cas. A 1signifie que ces contrôles ont réussi.

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 défini. Il doit être fourni 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 le verify return:1montre.

Vous pouvez vérifier 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);
    }
David Schwartz
la source
Le document complet vit également ici: openssl.org/docs/manmaster/ssl/SSL_CTX_set_verify.html
jouell