Проверьте CRL против своего CA
Я использую Python, библиотеку pyopenssl для проверки CRL против его CA.
Что у меня есть:
Я получаю сертификат центра:
with open(ca_file_path) as ca_file_obj:
ca = crypto.load_certificate(crypto.FILETYPE_PEM, ca_file_obj.read())
Я получаю CRL:
with open(crl_file_path) as crl_file_obj:
crl = crypto.load_crl(crypto.FILETYPE_PEM, crl_file_obj.read())
Как я могу проверить, что CRL принадлежит CA, я знаю, что это можно сделать с помощью openssl, но как решить это в чистом коде Python, не открывая openssl как подпроцесс? Любые идеи кто-нибудь?
1 ответ
Используя pyopenssl, вы можете сделать:
# Export CRL as a cryptography CRL.
crl_crypto = crl.to_cryptography()
# Get CA Public Key as _RSAPublicKey
ca_pub_key = ca.get_pubkey().to_cryptography_key()
# Validate CRL against CA
valid_signature = crl_crypto.is_signature_valid()
Примите во внимание, что проверка действительности подписи на CRL недостаточна, чтобы знать, следует ли доверять CRL (см. RFC 5280).