Что проверяет return: 1 означает в выходных данных openssl

Я не понимаю вывода openssl. Запуск openssl следующим образом:

#openssl s_client -connect google.com:443 -CAfile cacert.pem

В конечном итоге все в порядке, поскольку сертификат конечного объекта был проверен: Проверьте код возврата: 0 (ok)

, но как насчет возврата проверки : 1 в начале вывода для промежуточных продуктов ниже? Что это значит или в чем суть?

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


8
задан 8 January 2016 в 02:42
1 ответ

Обновление. Стандартный C5 не поддерживает SNI , который является технологией, необходимой для обслуживания нескольких доменов на одном IP-адресе с использованием SSL. Как вы увидите из связанного ответа (и других), втиснуть его в C5 болезненно, и, кроме того, у вас осталось всего около двух лет жизни на этой ОС (хотя в вашем случае у вас нет патча и уже не поддерживается; 5.1 была EoLed в течение многих лет), так что это не менее веская причина для обновления.

-121--439925-

Функция обратного вызова verify (используемая для окончательной проверки применимости сертификата для конкретного использования) передается через SSL в поле, называемое полем preverify_okay , которое указывает, прошла ли цепочка сертификатов. базовые проверки, применимые ко всем случаям. A 1 означает, что эти проверки пройдены.

 int verify_callback (int preverify_ok, X509_STORE_CTX * x509_ctx)
 

Функция verify_callback используется для управления поведением, когда установлен флаг SSL_VERIFY_PEER. Он должен предоставляться приложением и получать два аргумента: preverify_ok указывает, прошла ли проверка соответствующего сертификата (preverify_ok = 1) или нет (preverify_ok = 0).

Это то, что возвращает verify : 1 Отображается .

Вы можете проверить код, если хотите получить более подробную информацию:

int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
    {
    [ snip ]
    BIO_printf(bio_err,"verify return:%d\n",ok);
    return(ok);
    }
10
ответ дан 2 December 2019 в 22:58

Теги

Похожие вопросы