SSL_CTX_set_cert_verify_callback по сравнению с SSL_CTX_set_verify

Кто-либо может сказать мне, каково различие между SSL_CTX_set_cert_verify_callback и SSL_CTX_set_verify? Из документов OpenSSL:

SSL_CTX_set_cert_verify_callback () устанавливает функцию обратного вызова проверки для ctx. Объекты SSL, которые создаются из ctx, наследовали установку, допустимую в то время, когда SSL_new (3) называют.

и:

SSL_CTX_set_verify () устанавливает флаги проверки для ctx, чтобы быть режимом и указывает функцию verify_callback, которая будет использоваться. Если никакая функция обратного вызова не должна быть указана, Нулевой указатель может использоваться для verify_callback.

Таким образом, я пытаюсь понять который обратный вызов послать за каждым (от стороны клиента).

Спасибо эксперты.

9
задан BreakPoint 28 April 2010 в 01:11
поделиться

2 ответа

SSL_CTX_set_cert_verify_callback () означает, что вы указываете функцию для выполнения всей проверки процесс (прохождение цепочки сертификатов с проверкой каждого сертификата по очереди). [вы, вероятно, не хотите этого делать, согласно предупреждению ниже]

SSL_CTX_set_verify (), с другой стороны, указывает функцию, которая вызывается, когда валидатор по умолчанию проверяет каждый сертификат, с preverify_ok, установленным в 0 или 1, чтобы укажите, сработала ли проверка соответствующего сертификата.

Из документа для SSL_CTX_set_cert_verify_callback ()

ПРЕДУПРЕЖДЕНИЯ

Не смешивайте обратный вызов проверки , описанный в этой функции, с функцией verify_callback, вызываемой во время проверки процесс. Последний устанавливается с помощью семейства функций SSL_CTX_set_verify (3) .

Обеспечение полной процедуры проверки, включая настройки сертификата и т. Д., Является сложной задачей. Встроенная процедура довольно мощная, и в большинстве случаев ее должно быть достаточно, чтобы изменить ее поведение с помощью функции verify_callback.

9
ответ дан 3 November 2019 в 00:00
поделиться

SSL_CTX_set_cert_verify_callback () изменяет функцию проверки сертификата по умолчанию. Вам, наверное, не стоит этого делать. Это довольно сложно, вам нужно проверить подпись для каждого сертификата, проверить цепочку, возможно, проверить CRL. Это самая сложная часть SSL.

SSL_CTX_set_verify () используется для установки режима SSL. Если выбран режим SSL_VERIFY_PEER (двусторонний SSL), вы также должны установить обратный вызов в этой функции для дальнейшей проверки сертификата клиента (проверка CN по белому списку и т. Д.). Для других режимов этот CB не используется. Поскольку вы сказали, что находитесь в режиме клиента, вам, вероятно, не нужно беспокоиться об этом вызове.

3
ответ дан 3 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

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