问题描述
我正在使用以下代码:
from cryptography import x509
from cryptography.hazmat.backends import default_backend
cert_info = x509.load_pem_x509_certificate(cert_pem,default_backend())
cert_issuer = cert_info.issuer
在PyCharm中进行调试时,我看到cert_issuer变量如下:
我想将commonName值存储在变量中。 (上面突出显示的值)
我对Python还是很陌生,无法使用这些类型的变量查找任何内容,有人可以指导我将值存储在变量中的语法是什么。
解决方法
发行人的通用名称(CN)可以如下确定:
...
from cryptography.x509.oid import NameOID
cn = cert_info.issuer.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value
...
cryptography.x509.Certificate#issuer
返回包含属性列表的cryptography.x509.Name
对象。可以使用get_attributes_for_oid(oid)
访问此列表的特定属性,其中必须使用来自cryptography.x509.oid.NameOID
的OID来指定属性名称,例如COMMON_NAME
。 get_attributes_for_oid(oid)
返回cryptography.x509.NameAttributes
对象的列表。由于只有一个 Issuer ,因此必须使用第一个NameAttribute
对象,可以使用value
来查询其值。