Python: чтение сертификата pkcs12 с pyOpenSSL.криптографический

У меня есть действительный сертификат, выданный испанским органом (FNMT), и я хочу поиграть с ним, чтобы узнать больше об этом. Файл имеет расширение .Р12

Я хотел бы прочитать информацию в нем (имя и фамилия) и проверить, действителен ли сертификат. Возможно ли это сделать с pyOpenSSL? Думаю, я должен использовать крипто-модуль в OpenSSL. Любая помощь или полезная ссылка? Попробуйте прочитать здесь:http://packages.python.org/pyOpenSSL/openssl-crypto.html но не много информации :-(

1 ответов


Это довольно прямолинейно использовать. Это не тестируется, но должно работать:

# load OpenSSL.crypto
from OpenSSL import crypto

# open it, using password. Supply/read your own from stdin.
p12 = crypto.load_pkcs12(open("/path/to/cert.p12", 'rb').read(), passwd)

# get various properties of said file.
# note these are PyOpenSSL objects, not strings although you
# can convert them to PEM-encoded strings.
p12.get_certificate()     # (signed) certificate object
p12.get_privatekey()      # private key.
p12.get_ca_certificates() # ca chain.

для получения дополнительных примеров просмотрите модульный тестовый код pyopenssl. Практически каждый способ, которым вы можете использовать библиотеку, есть

см. также здесь или без объявления здесь.