Apa yang memverifikasi pengembalian: 1 artinya dalam output openssl

10

Saya tidak mengerti keluaran openssl. Menjalankan openssl sebagai berikut:

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

Pada akhirnya semua baik-baik saja bahwa sertifikat entitas akhir telah diverifikasi OK: Verify return code: 0 (ok)

tapi bagaimana dengan verifikasi return:1di awal output untuk perantara di bawah ini? Apa artinya itu atau apa gunanya?

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

---
Rantai sertifikat
 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 = Otoritas Sertifikat Aman Equifax
---


jouell
sumber

Jawaban:

13

Fungsi verifikasi panggilan balik (digunakan untuk melakukan verifikasi akhir atas penerapan sertifikat untuk penggunaan tertentu) dilewatkan pada bidang oleh SSL yang disebut preverify_okaybidang yang menunjukkan apakah rantai sertifikat lulus pemeriksaan dasar yang berlaku untuk semua kasus. A 1berarti cek ini lulus.

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

Fungsi verifikasi_callback digunakan untuk mengontrol perilaku ketika bendera SSL_VERIFY_PEER diatur. Itu harus disediakan oleh aplikasi dan menerima dua argumen: preverify_ok menunjukkan, apakah verifikasi sertifikat yang bersangkutan telah lulus (preverify_ok = 1) atau tidak (preverify_ok = 0).

Ini yang verify return:1ditunjukkan.

Anda dapat memeriksa kodenya jika ingin lebih jelasnya:

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
sumber
Doc lengkapnya juga ada di sini: openssl.org/docs/manmaster/ssl/SSL_CTX_set_verify.html
jouell