Как использовать m2crypto для проверки цепочки сертификатов X509 в настройках без SSL - PullRequest
5 голосов
/ 13 апреля 2010

Я пытаюсь выяснить, как с помощью m2crypto проверить цепочку доверия от версии сертификата X509 с открытым ключом до одного из набора известных корневых ЦС, когда цепочка может быть произвольно длинной. Модуль SSL.Context выглядит многообещающе, за исключением того, что я не делаю этого в контексте соединения SSL и не вижу, как используется информация, передаваемая в load_verify_locations.

По сути, я ищу интерфейс, который эквивалентен: openssl проверяет pub_key_x509_cert

Есть ли что-то подобное в m2crypto?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 25 января 2012

Я изменил другой патч M2Crypto, и благодаря этому мы можем проверить сертификат X509 по цепочке CA, плюс он позволяет использовать списки отзыва сертификатов (CRL).

Суть разрешения проверки цепочки с помощью M2Crypto - это предоставление «verify_cert ()» для X509_Store_Context. Основной поток:

  1. Добавьте свои CA / CRL в X509_Store
  2. Используйте X509_Store_Context для проверки сертификата интереса

Мой патч улучшает поддержку CRL, а также позволяет выполнять проверку цепочки. https://bugzilla.osafoundation.org/show_bug.cgi?id=12954#c2

Мы используем этот патч как часть Pulp, ниже у нас есть вики-страница, которая делится дополнительной информацией о том, как мы выполняем проверку с помощью цепочки: https://fedorahosted.org/pulp/wiki/CertChainVerification

1 голос
/ 14 апреля 2010

Существует патч , который, возможно, потребуется немного обновить, и мне понадобятся юнит-тесты для его регистрации. Вклад приветствуется!

Другим запутанным способом было бы создать сеанс SSL в памяти, где вы выполняете проверку. Витая оболочка эффективно работает таким образом; Twisted действует как тупой сетевой канал, ничего не зная о данных, а M2Crypto шифрует / дешифрует данные в памяти, выполняя проверку сертификата на стороне.

...