Python:将 X509 证书的颁发者 CN 值存储为字符串

Ach*_*rma 4 python cryptography x509 pycharm

我正在使用以下代码:

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
Run Code Online (Sandbox Code Playgroud)

在 PyCharm 中调试时,我看到 cert_issuer 变量如下:

证书颁发者

我想将 commonName 值存储在变量中。(上面突出显示的值)

我对 Python 还很陌生,无法找到任何具有这些类型变量的内容,有人可以指导我将该值存储在变量中的语法应该是什么。

Top*_*aco 9

发行人的通用名称(CN)可以确定如下:

...
from cryptography.x509.oid import NameOID
cn = cert_info.issuer.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value
...
Run Code Online (Sandbox Code Playgroud)

cryptography.x509.Certificate#issuer返回一个cryptography.x509.Name包含属性列表的对象。该列表的特定属性可以通过 访问get_attributes_for_oid(oid),其中属性的名称必须使用 OID 指定cryptography.x509.oid.NameOID,例如COMMON_NAMEget_attributes_for_oid(oid)返回对象列表cryptography.x509.NameAttributes。由于只有一个IssuerNameAttribute ,因此必须使用第一个对象,可以使用 查询其值value