#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()
inX509StoreContext
. Или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()