I don't understand the openssl output. Running openssl as follows:
#openssl s_client -connect google.com:443 -CAfile cacert.pem < /dev/null
Ultimately all is well in that the end entity's cert was verified OK:
Verify return code: 0 (ok)
but what about w/the verify return:1
in the beginning of the output for the intermediates below? What does that mean or what is it's point?
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 ---
The verify callback function (used to perform final verification of the applicability of the certificate for the particular use) is passed a field by SSL called the
preverify_okay
field that indicates whether the certificate chain passed the basic checks that apply to all cases. A1
means these checks passed.This is what the
verify return:1
is showing.You can check the code if you want more details: