два сертификата, отправленные во время проверки.Зачем? - PullRequest
0 голосов
/ 27 апреля 2011
def cert_check(conn,cert,errnum,depth,ok):
    print 'Got cert',cert.get_subject()
    return ok

Сервер:

ctx = SSL.context(SSL.TLSv1_METHOD)
ctx.set_verify(SSL.VERIFY_PEER,verify_cb)
ctx.use_private_key_file('server.key')
ctx.use_certificate_file('server.crt')
ctx.load_verify_locations('ca.crt')

Клиент:

ctx = SSL.context(SSL.TLSv1_METHOD)
ctx.set_verify(SSL.VERIFY_PEER,verify_cb)
ctx.use_private_key_file('client.key')
ctx.use_certificate_file('client.crt')
ctx.load_verify_locations('ca.crt')

Как получается, что на стороне клиента и сервера я получаю два сертификата. Один без общего имени и один с правильным именем = myownserver.com/myownclient.com

Все вышеупомянутые файлы имеют только один ключ / сертификат. Кроме того, я предполагаю, что первым напечатанным сертификатом является ca.crt, потому что это единственный сертификат без общего имени. Но почему это случилось?

1 Ответ

0 голосов
/ 06 мая 2011

Это зависит от depth, который был установлен для проверки.

Из справочных страниц максимальная глубина проверки цепочки сертификатов, которая должна быть разрешена для текущего контекста. Кроме того, глубина значение по умолчанию 9.

...