Skip to main content
 首页 » 编程设计

python之如何从 x509 证书中提取签名

2025年05月04日7kerrycode

我正在尝试从加载的 x509 证书中提取签名。我提取了其他所有内容(发行者、主题、PEM、SignatureAlgorithm 等)。我已经搜索过这个,但没有找到。任何帮助将不胜感激!

from OpenSSL import crypto 
 
certobj = crypto.load_certificate(crypto.FILETYPE_ASN1, cert) 
 
issuer = certobj.get_issuer() 
subject = certobj.get_subject() 
 
certDetails = { 
    "SerialNumber": certobj.get_serial_number(), 
    "Signature": None,  # <-- This is what I am trying to get! 
    "SignatureAlgorithm": certobj.get_signature_algorithm(), 
    "CertificatePEM": crypto.dump_certificate(crypto.FILETYPE_PEM, certobj), 
    "SubjectPublicKeyPEM": crypto.dump_publickey(crypto.FILETYPE_PEM, certobj.get_pubkey()), 
    "Version": certobj.get_version() 
} 

请您参考如下方法:

我知道自问这个问题以来已经有一段时间了,但是对于任何需要的人来说,有两个选择,

signing_algo = cert_obj.signature_hash_algorithm.name 

或

signing_algo = cert_obj.signature_algorithm_oid._name 

cert_obj 是 cryptography.x509.Certificate 的实例