проверка сертификата python3::ssl:: _local_

#ssl #python-3.6 #pyopenssl

#ssl #python-3.6 #pyopenssl

Вопрос:

Я пытаюсь сделать (python 3.6) эквивалент

 openssl verify -CApath my_dir_of_CA_certs my_cert_from_one_of_those_CAs
 

Я продолжаю просматривать ssl и pyOpenSSL, но ничего не кажется очевидным.. любая форма проверки
для этих модулей требует подключения, которое не является тем, что делает приведенная выше команда. Я упускаю здесь что-то очевидное или это просто невозможно? (и мне придется запустить его как системную команду)

Комментарии:

1. Начните свой поиск по адресу get_verified_chain() in X509StoreContext . Или verify_certificate .

2. @PatrickMevzek на самом деле ваш ответ находится в точке (X509Store X509StoreContext verify_certificate), и мне удалось достичь своей цели. может быть, вы могли бы просто дать правильный ответ ниже, и я могу отдать вам должное за это

Ответ №1:

итак, @patrick-mevzek был прав, чтобы выполнить проверку сертификата в отношении (коллекции) CA, с помощью python3 можно использовать pyOpenSSL и выполнить:
x509store = OpenSSL.crypto.X509Store()
x509store.load_locations(None, capath = ca_verify_location)
или
x509store.load_locations(cafile = ca_verify_location) если центры сертификации хранятся в файле
store_ctx = OpenSSL.crypto.X509StoreContext(x509store, x509)
где x509 — это объект сертификата x509, а затем
store_ctx.verify_certificate()